p_table <- function(tab_data, ...) {
  tab_data_2 <- deparse(substitute(tab_data))
  
  table_p <- do.call(CreateTableOne, 
                     list(data = as.name(tab_data_2), includeNA = TRUE, ...))
  table_p_out <- print(table_p,
                       showAllLevels = TRUE,
                       printToggle = FALSE)
  kable(table_p_out,
        align = "c")
}
f_plot <- function(test_var, data_imp){
                
        cat("_________________________________________________")
        cat("\n")
        cat("   \n##", test_var)
        cat("\n")
        cat("_________________________________________________")
        cat("\n")
        
        f <- as.formula(paste(as.name(test_var),
                              "AGE + SEX + T_SIZE + FACILITY_TYPE_F + FACILITY_LOCATION_F + YEAR_OF_DIAGNOSIS",
                              sep = " ~ " ))
        
        data_imp_2 <- deparse(substitute(data_imp))
        
        fit_fn <- do.call("glm", 
                       list(formula = f, 
                            data = as.name(data_imp_2), 
                            family = "binomial"))
        
        print(summary(fit_fn))
        
        or <- as.data.frame(exp(coefficients(fit_fn)))
        or$Variable <- rownames(or)
        rownames(or) <- c()
        names(or) <- c('OddsRatio', 'Variable')
        ci <- as.data.frame(exp(confint(fit_fn)))
        ci$Variable <- rownames(ci)
        rownames(ci) <- c()
        p_val_list <- tidy(fit_fn) %>%
        select(term, p.value) %>%
        rename(Variable = term) %>%
        mutate(p.value = round(p.value, 4))
        p_val_list$p.value <- as.character(p_val_list$p.value)
        p_val_list$p.value[p_val_list$p.value == "0"] <- "< 0.0001"
        all <- full_join(or, ci, by = 'Variable')
        all <- full_join(all, p_val_list, by = "Variable")
        names(all) <- c('OddsRatio', 'Variable', 'Lower', 'Upper', "p_value")
        all <- na.omit(all)
        all <- all %>%
        filter(Variable != '(Intercept)') 
        text <- cbind(c("Variable", as.character(all$Variable)), 
              c("Odds Ratio", as.character(round(all$OddsRatio, 2))),
              c("Lower CI", as.character(round(all$Lower, 2))),
              c("Upper CI", as.character(round(all$Upper, 2))),
              c("p Value", all$p_value))
        forestplot(text, 
           mean = c(NA, all$OddsRatio), 
           lower = c(NA, all$Lower), 
           upper = c(NA, all$Upper), 
           new_page =   TRUE, zero = 1, 
           clip = c(0.1, 100),
           hrzl_lines = list("2" = gpar(col="#444444")),
           vertices = TRUE,
           graph.pos = 2,
           xlab = "Odds Ratio (log)",
           align = "c",
           txt_gp = fpTxtGp(cex = 0.7),
           xticks = getTicks(low = all$Lower,
                             high = all$Upper,
                             clip=c(-Inf, Inf),
                             exp=TRUE),
           boxsize = 0.1)
    
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
               1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
               3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
               8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
               2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
               1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
                   "AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
                   "MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
                   "UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
                   "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
                   "DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
                   "REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
                   "TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                   "TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
                   "CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
                   "CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
                   "CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
                   "CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
                   "CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
                   "CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
                   "CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
                   "CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
                   "CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
                   "CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
                   "CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
                   "RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
                   "RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
                   "REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
                   "RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
                   "RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
                   "REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
                   "DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
                   "RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
                   "PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
                   "DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
                   "RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
                   "RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
                   "METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
                   "METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
                       
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
breast <-  read_fwf('NCDBPUF_Breast.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vulva <-  read_fwf('NCDBPUF_Vulva.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vagina <-  read_fwf('NCDBPUF_Vagina.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
penis <-  read_fwf('NCDBPUF_Penis.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, 
                 vulva, vagina, penis)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina, penis)
prim_site_text <- data_frame(PRIMARY_SITE = 
                                 #lip
                               c("C000", "C001", "C002", "C003", "C004", "C005",
                                 "C006", "C008", "C009",
                                 
                                 #skin/melanoma
                                 "C440", "C441", "C442", "C443", "C444", "C445",
                                 "C446", "C447", "C448", "C449",
                                 
                                 #breast - nipple
                                 "C500",
                                 
                                 #vagina/vulva
                                 "C510", "C511", "C512", "C518", "C519", "C529",
                                 
                                 #penis
                                 "C600", "C601", "C602", "C608", "C609", "C639"
                                 ),                
SITE_TEXT = c(
  #lip 
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2  External Lip: NOS",
"C00.3 Lip: Upper Mucosa", 
"C00.4 Lip: Lower Mucosa", 
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure", 
"C00.8 Lip: Overlapping", 
"C00.9 Lip, NOS",
 #skin
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS", 
#breast
"C50.0 Nipple",
#vulva/vagina
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C52.9 Vagina, NOS",
#penis
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE) 
 
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
              "DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS",  "RAD_REGIONAL_DOSE_CGY",
              "RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", 
              "DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
              "RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
        mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
                                            "Community Cancer Program" = "1",
                                            "Comprehensive Comm Ca Program" = "2",
                                            "Academic/Research Program" = "3",
                                            "Integrated Network Ca Program" = "4",
                                            "Other" = "9")) %>%
        mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
                                            "New England" = "1",
                                            "Middle Atlantic" = "2",
                                            "South Atlantic" = "3",
                                            "East North Central" = "4",
                                            "East South Central" = "5",
                                            "West North Central" = "6",
                                            "West South Central" = "7",
                                            "Mountain" = "8",
                                            "Pacific" = "9",
                                            "out of US" = "0")) %>%
        mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
                                                 "Northeast" = c("1", "2"),
                                                 "South" = c("3", "7"),
                                                 "Midwest" = c("4", "5", "6"),
                                                 "West" = c("8", "9"))) %>%
        mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
        mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
        mutate(SEX_F = fct_recode(SEX,
                                "Male" = "1",
                                "Female" = "2")) %>%
        mutate(RACE_F = fct_collapse(RACE,
                                "White" = c("01"),
                                "Black" = c("02"),
                                "Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
                                            "16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
                                            "32", "96", "97"),
                                "Other/Unk" = c("03", "98", "99"))) %>%
        mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
                                       "Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
                                       "No" = c("0"),
                                       "Unknown" = c("9"))) %>%
        mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
                                         "None" = "0",
                                         "Private" = "1",
                                         "Medicaid" = "2",
                                         "Medicare" = "3",
                                         "Other Government" = "4",
                                         "Unknown" = "9")) %>%
        mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
                                         "Private")) %>%
        mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
                                      "Less than $38,000" = "1",
                                      "$38,000 - $47,999" = "2",
                                      "$48,000 - $62,999" = "3",
                                      "$63,000 +" = "4")) %>%
        mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
                                        "21% or more" = "1",
                                        "13 - 20.9%" = "2",
                                        "7 - 12.9%" = "3",
                                        "Less than 7%" = "4")) %>%
        mutate(U_R_F = fct_collapse(UR_CD_13,
                                    "Metro" = c("1", "2", "3"),
                                    "Urban" = c("4", "5", "6", "7"),
                                    "Rural" = c("8", "9"))) %>%
        mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
                                              All_Part_Prim = c("10", "11", "12", "13",
                                                                "14", "20", "21", "22"),
                                              Other_Facility = c("00"))) %>%
        mutate(GRADE_F = fct_recode(GRADE,
                                  "Gr I: Well Diff" = "1",
                                  "Gr II: Mod Diff" = "2",
                                  "Gr III: Poor Diff" = "3",
                                  "Gr IV: Undiff/Anaplastic" = "4",
                                  "NA/Unkown" = "9")) %>%
        mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
        mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
        mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
        mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
                                        "1")) %>%
        mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
                                        "1")) %>%
        mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
                                    "No Residual" = "0",
                                    "Residual, NOS" = "1",
                                    "Microscopic Resid" = "2",
                                    "Macroscopic Resid" = "3",
                                    "Not evaluable" = "7",
                                    "No surg" = "8",
                                    "Unknown" = "9")) %>%
        mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
                                         "Yes" = c("1", "2", "3"),
                                         "No" = c("0"),
                                         "No surg/Unk/NA" = c("7", "8", "9"))) %>%
        mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
                                                 "No_Surg_or_No_Readmit" = "0",
                                                 "Unplan_Readmit_Same" = "1",
                                                 "Plan_Readmit_Same" = "2",
                                                 "PlanUnplan_Same" = "3",
                                                 "Unknown" = "4")) %>%
        mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
                                                "None" = "0",
                                                "Beam Radiation" = "1",
                                                "Radioactive Implants" = "2",
                                                "Radioisotopes" = "3",
                                                "Beam + Imp or Isotopes" = "4",
                                                "Radiation, NOS" = "5",
                                                "Unknown" = "9")) %>%
        mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
                                                 "Alive_30" = "0",
                                                 "Dead_30" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
                                                 "Alive_90" = "0",
                                                 "Dead_90" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
                                                      "Neg_LymphVasc_Inv" = "0",
                                                      "Pos_LumphVasc_Inv" = "1",
                                                      "N_A" = "8",
                                                      "Unknown" = "9")) %>%
        mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
                                                     "No_Surg" = "0",
                                                     "Robot_Assist" = "1",
                                                     "Robot_to_Open" = "2",
                                                     "Endo_Lap" = "3",
                                                     "Endo_Lap_to_Open" = "4",
                                                     "Open_Unknown" = "5",
                                                     "Unknown" = "9")) %>%
        mutate(All = "All") %>%
        mutate(All = factor(All)) %>%
        mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
                                                    "Surg performed" = "0",
                                                    "Surg not recommended" = "1",
                                                    "No surg due to pt factors" = "2",
                                                    "No surg, pt died" = "5",
                                                    "Surg rec, not done" = "6",
                                                    "Surg rec, pt refused" = "7",
                                                    "Surg rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_SURGERY == "9",
                                          "Ukn",
                                          "No"))) %>%
        mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
                             SURGERY_YN == "No" ~ FALSE,
                             TRUE ~ NA))  %>%
        mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
                                                    "Rad performed" = "0",
                                                    "Rad not recommended" = "1",
                                                    "No Rad due to pt factors" = "2",
                                                    "No Rad, pt died" = "5",
                                                    "Rad rec, not done" = "6",
                                                    "Rad rec, pt refused" = "7",
                                                    "Rad rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_RADIATION == "9",
                                          NA,
                                          "No"))) %>%
        mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
                                                   "None or Surg or Rad" = "0",
                                                   "Rad before Surg" = "2",
                                                   "Surg before Rad" = "3",
                                                   "Rad before and after Surg" = "4",
                                                   "Intraop Rad" = "5",
                                                   "Intraop Rad plus other" = "6",
                                                   "Unknown" = "9")) %>%
        mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                     "Surg Alone",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                            "Rad Alone",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
                                                   "No Treatment",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2",
                                                          "Rad then Surg",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3",
                                                                 "Surg then Rad",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4",
                                                                        "Rad before and after Surg",
                                                                        "Other"))))))) %>%
        mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
                                          "Surg Alone",
                                          "Surg then Rad",
                                          "Rad Alone")) %>%
        mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
                                       "No" = c("00", "82", "85", "86", "87"),
                                       "Yes" = c("01", "02", "03"),
                                       "Ukn" = c("88", "99"))) %>%
        mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                     "Surg, No rad, No Chemo",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                            "Rad, No Surg, No Chemo",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                                   "No Surg, No Rad, No Chemo",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
                                                          "Rad then Surg, No Chemo",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
                                                                 "Surg then Rad, No Chemo",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
                                                                        "Rad before and after Surg, No Chemo",
                                ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                       "Surg, No rad, Yes Chemo",
                                       ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                              "Rad, No Surg, Yes Chemo",
                                              ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                                     "No Surg, No Rad, Yes Chemo",
                                                     ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
                                                            "Rad then Surg, Yes Chemo",
                                                            ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
                                                                   "Surg then Rad, Yes Chemo",
                                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
                                                                          "Rad before and after Surg, Yes Chemo",
                                                                          "Other"))))))))))))) %>%
        mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
        mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
        mutate(T_SIZE = ifelse(T_SIZE == 0,
                                "No Tumor",
                                ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
                                       "< 1 cm",
                                       ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
                                              "1-2 cm",
                                              ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
                                                     "2-3 cm",
                                                     ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
                                                            "3-4 cm",
                                                            ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
                                                                   "4-5 cm",
                                                                   ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
                                                                          "5-6 cm",
                                                                          ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
                                                                                         T_SIZE == 980 | T_SIZE == 989 |
                                                                                         T_SIZE == 997,
                                                                          ">6 cm",
                                                                          ifelse(T_SIZE == 988 | T_SIZE == 999,
                                                                                 "NA_unk",
                                                                                 "Microscopic focus")))))))))) %>%
        mutate(T_SIZE = factor(T_SIZE)) %>%
        mutate(T_SIZE = fct_relevel(T_SIZE,
                                     "No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
                                       "4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
        mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
                                      CS_METS_DX_BONE == "1" ~ "Bone",
                                      CS_METS_DX_BRAIN == "1" ~ "Brain",
                                      CS_METS_DX_LIVER == "1" ~ "Liver",
                                      TRUE ~ "None/Other/Unk/NA")) %>%
        mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
                                               "Non-Expansion State" = "0",
                                               "Jan 2014 Expansion States" = "1",
                                               "Early Expansion States (2010-13)" = "2",
                                               "Late Expansion States (> Jan 2014)" = "3",
                                               "Suppressed for Ages 0 - 39" = "9"))  %>%
        mutate(EXPN_GROUP =  case_when(MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
                                       
                                       MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% 
                                          c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
               
                                       MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
                                       
                                        MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
                    
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") & 
                                        YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
                                       
                                       MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
  
  mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013")) %>%
  
  mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>% 
  
  mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE, 
                        ifelse(CHEMO_YN == "Ukn", NA, 
                               TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
                 "HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
                 "CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
                 "BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
                 "MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
        mutate_at(fact_vars_2, funs(factor(.)))

Extract data of interest

# EMPD
site_code <- c(
  #lip  
  "C000", "C001", "C002", "C003", "C004", "C005","C006", "C008","C009",
                                  
                                 
#skin/melanoma
  "C440", "C441", "C442", "C443", "C444", "C445", "C446", "C447", "C448", "C449",
                                 
                                 
#vagina/vulva
  "C510", "C511", "C512", "C518", "C519", "C529",
                                 
#penis
 "C600", "C601", "C602", "C608", "C609", "C639")
histo_code <- c("8542")
behavior_code <- c("3")
data <- dat %>%
        filter(BEHAVIOR %in% behavior_code) %>%
        filter(PRIMARY_SITE %in% site_code) %>%
        filter(HISTOLOGY %in% histo_code) %>%
#        filter(AGE >= 18) %>%
        filter(is.na(PUF_VITAL_STATUS) == FALSE) %>%
        filter(is.na(DX_LASTCONTACT_DEATH_MONTHS) == FALSE) %>%
        filter(SEQUENCE_NUMBER == "00") 
#%>%
#        filter(CLASS_OF_CASE %in% c("10", "12", "14", "22")) %>%
#        filter(INSURANCE_STATUS %in% c("0", "1", "2", "3", "4"))
no_Excludes <- as.data.frame(data %>% 
                               filter(EXPN_GROUP != "Exclude") 
                             %>% droplevels())
#file_path <- c("/Users/beastatlife/Google Drive/Penn/Research/Barbieri/NCDB")
#save(data,
#      file = paste0(file_path, "/EMPD_data.Rda"))
#load("EMPD_data.Rda")

Data including skin tumors was obtained from the NCBD on October 7, 2019. Cases that were included in this analysis were those with:

  1. Site codes: C500, C501, C502, C503, C504, C505, C506, C508, C509
  2. Histology codes: 8540
  3. Behavior codes: 3

Patients were excluded if they didn’t have values for either follow up or vital status.

Patients were excluded if they had surgery to a distant site using RX_SUMM_SURG_OTH_REGDIS. This was done to avoid confounding of different surgical procedures. We are only interested in surgery at the primary site. These distant site surgeries were being counted in the surgery/radiation sequence and thus to simplify analysis they were removed.

data %>%
        CreateTableOne(data = .,
                     vars = c("RX_SUMM_SURG_OTH_REGDIS"),
                     includeNA = TRUE) %>%
        print(.,
              showAllLevels = TRUE)
                             
                              level Overall     
  n                                 1399        
  RX_SUMM_SURG_OTH_REGDIS (%) 0     1360 (97.2) 
                              1        4 ( 0.3) 
                              2       16 ( 1.1) 
                              3        1 ( 0.1) 
                              4        0 ( 0.0) 
                              5        0 ( 0.0) 
                              9       18 ( 1.3) 
data <- data %>%
        filter(RX_SUMM_SURG_OTH_REGDIS == "0") 

Race was grouped as white, black, asian, other/unknown Stage was grouped into 0, I, II, III, IV, NA_Unknown, stage 0 was removed Whether surgery was performed was based on the REASON_FOR_NO_SURGERY variable. The SURGERY_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Whether radiation was performed was based on the REASON_FOR_NO_RADIATION variable. The RADIATION_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Table of variables for all cases:

p_table(data,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT",  "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE", "EXPN_GROUP", "SITE_TEXT"))
The data frame does not have: SITE_TEXT.1  Dropped

level Overall
n 1360
FACILITY_TYPE_F (%) Community Cancer Program 31 ( 2.3)
Comprehensive Comm Ca Program 462 ( 34.0)
Academic/Research Program 654 ( 48.1)
Integrated Network Ca Program 199 ( 14.6)
NA 14 ( 1.0)
FACILITY_LOCATION_F (%) New England 59 ( 4.3)
Middle Atlantic 231 ( 17.0)
South Atlantic 255 ( 18.8)
East North Central 222 ( 16.3)
East South Central 89 ( 6.5)
West North Central 141 ( 10.4)
West South Central 99 ( 7.3)
Mountain 79 ( 5.8)
Pacific 171 ( 12.6)
NA 14 ( 1.0)
FACILITY_GEOGRAPHY (%) Northeast 290 ( 21.3)
South 354 ( 26.0)
Midwest 452 ( 33.2)
West 250 ( 18.4)
NA 14 ( 1.0)
AGE (mean (sd)) 70.52 (11.87)
AGE_F (%) (0,54] 144 ( 10.6)
(54,64] 254 ( 18.7)
(64,74] 421 ( 31.0)
(74,100] 541 ( 39.8)
AGE_40 (%) (0,40] 18 ( 1.3)
(40,100] 1342 ( 98.7)
SEX_F (%) Male 261 ( 19.2)
Female 1099 ( 80.8)
RACE_F (%) White 1229 ( 90.4)
Black 25 ( 1.8)
Other/Unk 35 ( 2.6)
Asian 71 ( 5.2)
HISPANIC (%) No 1234 ( 90.7)
Yes 52 ( 3.8)
Unknown 74 ( 5.4)
INSURANCE_F (%) Private 453 ( 33.3)
None 23 ( 1.7)
Medicaid 22 ( 1.6)
Medicare 838 ( 61.6)
Other Government 8 ( 0.6)
Unknown 16 ( 1.2)
INCOME_F (%) Less than $38,000 165 ( 12.1)
$38,000 - $47,999 326 ( 24.0)
$48,000 - $62,999 365 ( 26.8)
$63,000 + 499 ( 36.7)
NA 5 ( 0.4)
EDUCATION_F (%) 21% or more 167 ( 12.3)
13 - 20.9% 320 ( 23.5)
7 - 12.9% 465 ( 34.2)
Less than 7% 403 ( 29.6)
NA 5 ( 0.4)
U_R_F (%) Metro 1106 ( 81.3)
Urban 187 ( 13.8)
Rural 27 ( 2.0)
NA 40 ( 2.9)
CROWFLY (mean (sd)) 41.15 (124.43)
CDCC_TOTAL_BEST (%) 0 1106 ( 81.3)
1 198 ( 14.6)
2 40 ( 2.9)
3 16 ( 1.2)
SITE_TEXT (%) C00.0 External Lip: Upper NOS 0 ( 0.0)
C00.1 External Lip: Lower NOS 0 ( 0.0)
C00.2 External Lip: NOS 0 ( 0.0)
C00.3 Lip: Upper Mucosa 0 ( 0.0)
C00.4 Lip: Lower Mucosa 0 ( 0.0)
C00.5 Lip: Mucosa NOS 0 ( 0.0)
C00.6 Lip: Commissure 0 ( 0.0)
C00.8 Lip: Overlapping 0 ( 0.0)
C00.9 Lip, NOS 0 ( 0.0)
C44.0 Skin of lip, NOS 0 ( 0.0)
C44.1 Eyelid 0 ( 0.0)
C44.2 External ear 2 ( 0.1)
C44.3 Skin of ear and unspecified parts of face 2 ( 0.1)
C44.4 Skin of scalp and neck 3 ( 0.2)
C44.5 Skin of trunk 287 ( 21.1)
C44.6 Skin of upper limb and shoulder 7 ( 0.5)
C44.7 Skin of lower limb and hip 12 ( 0.9)
C44.8 Overlapping lesion of skin 11 ( 0.8)
C44.9 Skin, NOS 19 ( 1.4)
C50.0 Nipple 0 ( 0.0)
C51.0 Labium majus 92 ( 6.8)
C51.1 Labium minus 15 ( 1.1)
C51.2 Clitoris 2 ( 0.1)
C51.8 Overlapping lesion of vulva 60 ( 4.4)
C51.9 Vulva, NOS 822 ( 60.4)
C52.9 Vagina, NOS 1 ( 0.1)
C60.0 Prepuce 0 ( 0.0)
C60.1 Glans penis 0 ( 0.0)
C60.2 Body of penis 1 ( 0.1)
C60.8 Overlapping lesion of penis 2 ( 0.1)
C60.9 Penis 22 ( 1.6)
BEHAVIOR (%) 2 0 ( 0.0)
3 1360 (100.0)
GRADE_F (%) Gr I: Well Diff 38 ( 2.8)
Gr II: Mod Diff 30 ( 2.2)
Gr III: Poor Diff 36 ( 2.6)
Gr IV: Undiff/Anaplastic 0 ( 0.0)
5 0 ( 0.0)
6 0 ( 0.0)
7 0 ( 0.0)
8 0 ( 0.0)
NA/Unkown 1256 ( 92.4)
DX_STAGING_PROC_DAYS (mean (sd)) 1.96 (14.28)
TNM_CLIN_T (%) N_A 1 ( 0.1)
c0 6 ( 0.4)
c1 139 ( 10.2)
c1A 148 ( 10.9)
c1B 138 ( 10.1)
c1C 0 ( 0.0)
c1MI 0 ( 0.0)
c2 176 ( 12.9)
c2A 0 ( 0.0)
c2B 0 ( 0.0)
c2C 0 ( 0.0)
c3 25 ( 1.8)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c4 1 ( 0.1)
c4A 0 ( 0.0)
c4B 0 ( 0.0)
c4C 0 ( 0.0)
c4D 0 ( 0.0)
cX 625 ( 46.0)
pA 0 ( 0.0)
pIS 28 ( 2.1)
NA 73 ( 5.4)
TNM_CLIN_N (%) N_A 1 ( 0.1)
c0 872 ( 64.1)
c1 4 ( 0.3)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c2 4 ( 0.3)
c2A 0 ( 0.0)
c2B 3 ( 0.2)
c2C 1 ( 0.1)
c3 0 ( 0.0)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c3C 0 ( 0.0)
cX 412 ( 30.3)
NA 63 ( 4.6)
TNM_CLIN_M (%) N_A 1 ( 0.1)
c0 1248 ( 91.8)
c0I+ 0 ( 0.0)
c1 11 ( 0.8)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c1C 0 ( 0.0)
NA 100 ( 7.4)
TNM_CLIN_STAGE_GROUP (%) 0 64 ( 4.7)
1 196 ( 14.4)
1A 109 ( 8.0)
1B 119 ( 8.8)
1C 0 ( 0.0)
2 184 ( 13.5)
2A 0 ( 0.0)
2B 0 ( 0.0)
2C 0 ( 0.0)
3 15 ( 1.1)
3A 0 ( 0.0)
3B 1 ( 0.1)
3C 0 ( 0.0)
4 9 ( 0.7)
4A 2 ( 0.1)
4B 5 ( 0.4)
4C 0 ( 0.0)
N_A 1 ( 0.1)
99 655 ( 48.2)
TNM_PATH_T (%) N_A 1 ( 0.1)
p0 9 ( 0.7)
p1 98 ( 7.2)
p1A 147 ( 10.8)
p1B 157 ( 11.5)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 144 ( 10.6)
p2A 0 ( 0.0)
p2B 0 ( 0.0)
p3 22 ( 1.6)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p4 1 ( 0.1)
p4A 0 ( 0.0)
p4B 0 ( 0.0)
p4C 0 ( 0.0)
p4D 0 ( 0.0)
pA 0 ( 0.0)
pIS 23 ( 1.7)
pX 601 ( 44.2)
NA 157 ( 11.5)
TNM_PATH_N (%) N_A 1 ( 0.1)
p0 282 ( 20.7)
p0I- 0 ( 0.0)
p0I+ 0 ( 0.0)
p0M- 0 ( 0.0)
p0M+ 0 ( 0.0)
p1 9 ( 0.7)
p1A 1 ( 0.1)
p1B 1 ( 0.1)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 1 ( 0.1)
p2A 0 ( 0.0)
p2B 1 ( 0.1)
p2C 6 ( 0.4)
p3 1 ( 0.1)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p3C 0 ( 0.0)
pX 844 ( 62.1)
NA 213 ( 15.7)
TNM_PATH_M (%) N_A 1 ( 0.1)
p1 3 ( 0.2)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
pX 622 ( 45.7)
NA 734 ( 54.0)
TNM_PATH_STAGE_GROUP (%) 0 58 ( 4.3)
1 107 ( 7.9)
1A 104 ( 7.6)
1B 92 ( 6.8)
1C 0 ( 0.0)
2 120 ( 8.8)
2A 0 ( 0.0)
2B 0 ( 0.0)
2C 0 ( 0.0)
3 26 ( 1.9)
3A 2 ( 0.1)
3B 0 ( 0.0)
3C 5 ( 0.4)
4 4 ( 0.3)
4A 5 ( 0.4)
4B 1 ( 0.1)
4C 0 ( 0.0)
N_A 1 ( 0.1)
99 756 ( 55.6)
NA 79 ( 5.8)
DX_RX_STARTED_DAYS (mean (sd)) 49.30 (133.55)
DX_SURG_STARTED_DAYS (mean (sd)) 46.72 (118.95)
DX_DEFSURG_STARTED_DAYS (mean (sd)) 58.37 (134.05)
MARGINS (%) No Residual 601 ( 44.2)
Residual, NOS 164 ( 12.1)
Microscopic Resid 351 ( 25.8)
Macroscopic Resid 17 ( 1.2)
Not evaluable 22 ( 1.6)
No surg 161 ( 11.8)
Unknown 44 ( 3.2)
MARGINS_YN (%) No 601 ( 44.2)
Yes 532 ( 39.1)
No surg/Unk/NA 227 ( 16.7)
SURG_DISCHARGE_DAYS (mean (sd)) 2.12 (6.93)
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 1292 ( 95.0)
Unplan_Readmit_Same 36 ( 2.6)
Plan_Readmit_Same 15 ( 1.1)
PlanUnplan_Same 1 ( 0.1)
9 16 ( 1.2)
RX_SUMM_RADIATION_F (%) None 1268 ( 93.2)
Beam Radiation 73 ( 5.4)
Radioactive Implants 1 ( 0.1)
Radioisotopes 0 ( 0.0)
Beam + Imp or Isotopes 1 ( 0.1)
Radiation, NOS 0 ( 0.0)
Unknown 17 ( 1.2)
PUF_30_DAY_MORT_CD_F (%) Alive_30 1156 ( 85.0)
Dead_30 5 ( 0.4)
Unknown 33 ( 2.4)
NA 166 ( 12.2)
PUF_90_DAY_MORT_CD_F (%) Alive_90 1134 ( 83.4)
Dead_90 10 ( 0.7)
Unknown 50 ( 3.7)
NA 166 ( 12.2)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 58.05 (40.30)
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 271 ( 19.9)
Pos_LumphVasc_Inv 28 ( 2.1)
N_A 1 ( 0.1)
Unknown 438 ( 32.2)
NA 622 ( 45.7)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 122 ( 9.0)
Robot_Assist 2 ( 0.1)
Robot_to_Open 0 ( 0.0)
Endo_Lap 18 ( 1.3)
Endo_Lap_to_Open 2 ( 0.1)
Open_Unknown 594 ( 43.7)
Unknown 0 ( 0.0)
NA 622 ( 45.7)
SURG_RAD_SEQ (%) Surg Alone 1158 ( 85.1)
Surg then Rad 23 ( 1.7)
Rad Alone 52 ( 3.8)
No Treatment 105 ( 7.7)
Other 22 ( 1.6)
Rad before and after Surg 0 ( 0.0)
Rad then Surg 0 ( 0.0)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 1119 ( 82.3)
Surg then Rad, No Chemo 20 ( 1.5)
Surg then Rad, Yes Chemo 3 ( 0.2)
Surg, No rad, Yes Chemo 10 ( 0.7)
No Surg, No Rad, Yes Chemo 9 ( 0.7)
No Surg, No Rad, No Chemo 94 ( 6.9)
Other 53 ( 3.9)
Rad, No Surg, Yes Chemo 9 ( 0.7)
Rad, No Surg, No Chemo 43 ( 3.2)
Rad then Surg, Yes Chemo 0 ( 0.0)
Rad then Surg, No Chemo 0 ( 0.0)
Rad before and after Surg, Yes Chemo 0 ( 0.0)
Rad before and after Surg, No Chemo 0 ( 0.0)
SURGERY_YN (%) No 156 ( 11.5)
Ukn 8 ( 0.6)
Yes 1196 ( 87.9)
RADIATION_YN (%) No 1268 ( 93.2)
Yes 75 ( 5.5)
NA 17 ( 1.2)
CHEMO_YN (%) No 1287 ( 94.6)
Yes 31 ( 2.3)
Ukn 42 ( 3.1)
mets_at_dx (%) Bone 5 ( 0.4)
Brain 0 ( 0.0)
Liver 0 ( 0.0)
Lung 0 ( 0.0)
None/Other/Unk/NA 1355 ( 99.6)
MEDICAID_EXPN_CODE (%) Non-Expansion State 482 ( 35.4)
Jan 2014 Expansion States 450 ( 33.1)
Early Expansion States (2010-13) 239 ( 17.6)
Late Expansion States (> Jan 2014) 175 ( 12.9)
Suppressed for Ages 0 - 39 14 ( 1.0)
EXPN_GROUP (%) Exclude 14 ( 1.0)
Post-Expansion 247 ( 18.2)
Pre-Expansion 1099 ( 80.8)
SITE_TEXT (%) C00.0 External Lip: Upper NOS 0 ( 0.0)
C00.1 External Lip: Lower NOS 0 ( 0.0)
C00.2 External Lip: NOS 0 ( 0.0)
C00.3 Lip: Upper Mucosa 0 ( 0.0)
C00.4 Lip: Lower Mucosa 0 ( 0.0)
C00.5 Lip: Mucosa NOS 0 ( 0.0)
C00.6 Lip: Commissure 0 ( 0.0)
C00.8 Lip: Overlapping 0 ( 0.0)
C00.9 Lip, NOS 0 ( 0.0)
C44.0 Skin of lip, NOS 0 ( 0.0)
C44.1 Eyelid 0 ( 0.0)
C44.2 External ear 2 ( 0.1)
C44.3 Skin of ear and unspecified parts of face 2 ( 0.1)
C44.4 Skin of scalp and neck 3 ( 0.2)
C44.5 Skin of trunk 287 ( 21.1)
C44.6 Skin of upper limb and shoulder 7 ( 0.5)
C44.7 Skin of lower limb and hip 12 ( 0.9)
C44.8 Overlapping lesion of skin 11 ( 0.8)
C44.9 Skin, NOS 19 ( 1.4)
C50.0 Nipple 0 ( 0.0)
C51.0 Labium majus 92 ( 6.8)
C51.1 Labium minus 15 ( 1.1)
C51.2 Clitoris 2 ( 0.1)
C51.8 Overlapping lesion of vulva 60 ( 4.4)
C51.9 Vulva, NOS 822 ( 60.4)
C52.9 Vagina, NOS 1 ( 0.1)
C60.0 Prepuce 0 ( 0.0)
C60.1 Glans penis 0 ( 0.0)
C60.2 Body of penis 1 ( 0.1)
C60.8 Overlapping lesion of penis 2 ( 0.1)
C60.9 Penis 22 ( 1.6)

p_table(no_Excludes,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT", "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "T_SIZE", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE","SITE_TEXT"), 
        strata = "EXPN_GROUP")
The data frame does not have: SITE_TEXT.1  Dropped

level Post-Expansion Pre-Expansion p test
n 248 1137
FACILITY_TYPE_F (%) Community Cancer Program 10 ( 4.0) 21 ( 1.8) 0.001
Comprehensive Comm Ca Program 90 ( 36.3) 380 ( 33.4)
Academic/Research Program 129 ( 52.0) 551 ( 48.5)
Integrated Network Ca Program 19 ( 7.7) 185 ( 16.3)
FACILITY_LOCATION_F (%) New England 24 ( 9.7) 36 ( 3.2) <0.001
Middle Atlantic 50 ( 20.2) 190 ( 16.7)
South Atlantic 14 ( 5.6) 245 ( 21.5)
East North Central 24 ( 9.7) 201 ( 17.7)
East South Central 7 ( 2.8) 82 ( 7.2)
West North Central 33 ( 13.3) 113 ( 9.9)
West South Central 0 ( 0.0) 114 ( 10.0)
Mountain 6 ( 2.4) 75 ( 6.6)
Pacific 90 ( 36.3) 81 ( 7.1)
FACILITY_GEOGRAPHY (%) Northeast 74 ( 29.8) 226 ( 19.9) <0.001
South 14 ( 5.6) 359 ( 31.6)
Midwest 64 ( 25.8) 396 ( 34.8)
West 96 ( 38.7) 156 ( 13.7)
AGE (mean (sd)) 71.58 (11.66) 70.64 (11.36) 0.236
AGE_F (%) (0,54] 20 ( 8.1) 116 ( 10.2) 0.289
(54,64] 41 ( 16.5) 222 ( 19.5)
(64,74] 88 ( 35.5) 343 ( 30.2)
(74,100] 99 ( 39.9) 456 ( 40.1)
AGE_40 (%) (0,40] 1 ( 0.4) 3 ( 0.3) 1.000
(40,100] 247 ( 99.6) 1134 ( 99.7)
SEX_F (%) Male 58 ( 23.4) 207 ( 18.2) 0.073
Female 190 ( 76.6) 930 ( 81.8)
RACE_F (%) White 216 ( 87.1) 1038 ( 91.3) 0.005
Black 4 ( 1.6) 21 ( 1.8)
Other/Unk 4 ( 1.6) 30 ( 2.6)
Asian 24 ( 9.7) 48 ( 4.2)
HISPANIC (%) No 235 ( 94.8) 1027 ( 90.3) 0.011
Yes 9 ( 3.6) 37 ( 3.3)
Unknown 4 ( 1.6) 73 ( 6.4)
INSURANCE_F (%) Private 84 ( 33.9) 365 ( 32.1) 0.662
None 4 ( 1.6) 18 ( 1.6)
Medicaid 5 ( 2.0) 17 ( 1.5)
Medicare 151 ( 60.9) 704 ( 61.9)
Other Government 2 ( 0.8) 6 ( 0.5)
Unknown 2 ( 0.8) 27 ( 2.4)
INCOME_F (%) Less than $38,000 16 ( 6.5) 153 ( 13.5) <0.001
$38,000 - $47,999 41 ( 16.5) 289 ( 25.4)
$48,000 - $62,999 65 ( 26.2) 310 ( 27.3)
$63,000 + 125 ( 50.4) 381 ( 33.5)
NA 1 ( 0.4) 4 ( 0.4)
EDUCATION_F (%) 21% or more 38 ( 15.3) 132 ( 11.6) 0.277
13 - 20.9% 50 ( 20.2) 269 ( 23.7)
7 - 12.9% 78 ( 31.5) 401 ( 35.3)
Less than 7% 81 ( 32.7) 331 ( 29.1)
NA 1 ( 0.4) 4 ( 0.4)
U_R_F (%) Metro 210 ( 84.7) 915 ( 80.5) 0.041
Urban 25 ( 10.1) 167 ( 14.7)
Rural 2 ( 0.8) 26 ( 2.3)
NA 11 ( 4.4) 29 ( 2.6)
CROWFLY (mean (sd)) 30.73 (88.67) 49.62 (166.98) 0.085
CDCC_TOTAL_BEST (%) 0 200 ( 80.6) 927 ( 81.5) 0.980
1 38 ( 15.3) 163 ( 14.3)
2 7 ( 2.8) 34 ( 3.0)
3 3 ( 1.2) 13 ( 1.1)
SITE_TEXT (%) C44.2 External ear 0 ( 0.0) 2 ( 0.2) 0.480
C44.3 Skin of ear and unspecified parts of face 1 ( 0.4) 1 ( 0.1)
C44.4 Skin of scalp and neck 1 ( 0.4) 2 ( 0.2)
C44.5 Skin of trunk 59 ( 23.8) 230 ( 20.2)
C44.6 Skin of upper limb and shoulder 2 ( 0.8) 5 ( 0.4)
C44.7 Skin of lower limb and hip 4 ( 1.6) 8 ( 0.7)
C44.8 Overlapping lesion of skin 3 ( 1.2) 8 ( 0.7)
C44.9 Skin, NOS 4 ( 1.6) 15 ( 1.3)
C51.0 Labium majus 15 ( 6.0) 81 ( 7.1)
C51.1 Labium minus 3 ( 1.2) 11 ( 1.0)
C51.2 Clitoris 1 ( 0.4) 1 ( 0.1)
C51.8 Overlapping lesion of vulva 7 ( 2.8) 54 ( 4.7)
C51.9 Vulva, NOS 140 ( 56.5) 700 ( 61.6)
C52.9 Vagina, NOS 0 ( 0.0) 1 ( 0.1)
C60.2 Body of penis 1 ( 0.4) 1 ( 0.1)
C60.8 Overlapping lesion of penis 1 ( 0.4) 1 ( 0.1)
C60.9 Penis 6 ( 2.4) 16 ( 1.4)
BEHAVIOR (%) 3 248 (100.0) 1137 (100.0) NA
GRADE_F (%) Gr I: Well Diff 6 ( 2.4) 32 ( 2.8) 0.965
Gr II: Mod Diff 6 ( 2.4) 23 ( 2.0)
Gr III: Poor Diff 7 ( 2.8) 33 ( 2.9)
NA/Unkown 229 ( 92.3) 1049 ( 92.3)
DX_STAGING_PROC_DAYS (mean (sd)) 1.55 (8.05) 2.14 (15.46) 0.618
TNM_CLIN_T (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
c0 0 ( 0.0) 6 ( 0.5)
c1 32 ( 12.9) 109 ( 9.6)
c1A 31 ( 12.5) 116 ( 10.2)
c1B 42 ( 16.9) 97 ( 8.5)
c2 30 ( 12.1) 147 ( 12.9)
c3 0 ( 0.0) 29 ( 2.6)
c4 0 ( 0.0) 2 ( 0.2)
cX 78 ( 31.5) 557 ( 49.0)
pIS 5 ( 2.0) 23 ( 2.0)
NA 30 ( 12.1) 50 ( 4.4)
TNM_CLIN_N (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
c0 178 ( 71.8) 700 ( 61.6)
c1 1 ( 0.4) 3 ( 0.3)
c2 0 ( 0.0) 4 ( 0.4)
c2B 1 ( 0.4) 2 ( 0.2)
c2C 1 ( 0.4) 1 ( 0.1)
c3 0 ( 0.0) 1 ( 0.1)
cX 38 ( 15.3) 384 ( 33.8)
NA 29 ( 11.7) 41 ( 3.6)
TNM_CLIN_M (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
c0 199 ( 80.2) 1071 ( 94.2)
c1 4 ( 1.6) 8 ( 0.7)
NA 45 ( 18.1) 57 ( 5.0)
TNM_CLIN_STAGE_GROUP (%) 0 5 ( 2.0) 59 ( 5.2) 0.001
1 40 ( 16.1) 161 ( 14.2)
1A 22 ( 8.9) 89 ( 7.8)
1B 38 ( 15.3) 81 ( 7.1)
2 30 ( 12.1) 156 ( 13.7)
3 0 ( 0.0) 18 ( 1.6)
3B 0 ( 0.0) 1 ( 0.1)
3C 0 ( 0.0) 1 ( 0.1)
4 5 ( 2.0) 6 ( 0.5)
4A 0 ( 0.0) 3 ( 0.3)
4B 0 ( 0.0) 5 ( 0.4)
N_A 0 ( 0.0) 1 ( 0.1)
99 108 ( 43.5) 556 ( 48.9)
TNM_PATH_T (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
p0 2 ( 0.8) 7 ( 0.6)
p1 24 ( 9.7) 74 ( 6.5)
p1A 32 ( 12.9) 118 ( 10.4)
p1B 47 ( 19.0) 112 ( 9.9)
p2 17 ( 6.9) 128 ( 11.3)
p3 0 ( 0.0) 22 ( 1.9)
p4 0 ( 0.0) 2 ( 0.2)
pIS 2 ( 0.8) 21 ( 1.8)
pX 49 ( 19.8) 566 ( 49.8)
NA 75 ( 30.2) 86 ( 7.6)
TNM_PATH_N (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
p0 40 ( 16.1) 246 ( 21.6)
p1 0 ( 0.0) 9 ( 0.8)
p1A 1 ( 0.4) 1 ( 0.1)
p1B 1 ( 0.4) 0 ( 0.0)
p2 0 ( 0.0) 2 ( 0.2)
p2B 1 ( 0.4) 0 ( 0.0)
p2C 1 ( 0.4) 6 ( 0.5)
p3 0 ( 0.0) 1 ( 0.1)
pX 109 ( 44.0) 749 ( 65.9)
NA 95 ( 38.3) 122 ( 10.7)
TNM_PATH_M (%) N_A 0 ( 0.0) 1 ( 0.1) <0.001
p1 1 ( 0.4) 3 ( 0.3)
pX 0 ( 0.0) 634 ( 55.8)
NA 247 ( 99.6) 499 ( 43.9)
TNM_PATH_STAGE_GROUP (%) 0 3 ( 1.2) 55 ( 4.8) <0.001
1 20 ( 8.1) 92 ( 8.1)
1A 21 ( 8.5) 85 ( 7.5)
1B 28 ( 11.3) 66 ( 5.8)
2 11 ( 4.4) 111 ( 9.8)
3 0 ( 0.0) 28 ( 2.5)
3A 2 ( 0.8) 1 ( 0.1)
3C 1 ( 0.4) 5 ( 0.4)
4 2 ( 0.8) 3 ( 0.3)
4A 0 ( 0.0) 5 ( 0.4)
4B 0 ( 0.0) 1 ( 0.1)
N_A 0 ( 0.0) 1 ( 0.1)
99 123 ( 49.6) 642 ( 56.5)
NA 37 ( 14.9) 42 ( 3.7)
DX_RX_STARTED_DAYS (mean (sd)) 48.96 (44.78) 48.91 (143.60) 0.996
DX_SURG_STARTED_DAYS (mean (sd)) 48.17 (42.50) 45.91 (126.79) 0.808
DX_DEFSURG_STARTED_DAYS (mean (sd)) 61.12 (69.07) 57.29 (141.49) 0.715
MARGINS (%) No Residual 94 ( 37.9) 504 ( 44.3) 0.001
Residual, NOS 26 ( 10.5) 137 ( 12.0)
Microscopic Resid 60 ( 24.2) 300 ( 26.4)
Macroscopic Resid 4 ( 1.6) 13 ( 1.1)
Not evaluable 7 ( 2.8) 16 ( 1.4)
No surg 49 ( 19.8) 114 ( 10.0)
Unknown 8 ( 3.2) 53 ( 4.7)
MARGINS_YN (%) No 94 ( 37.9) 504 ( 44.3) 0.001
Yes 90 ( 36.3) 450 ( 39.6)
No surg/Unk/NA 64 ( 25.8) 183 ( 16.1)
SURG_DISCHARGE_DAYS (mean (sd)) 1.32 (3.36) 2.29 (7.43) 0.079
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 241 ( 97.2) 1075 ( 94.5) 0.161
Unplan_Readmit_Same 2 ( 0.8) 34 ( 3.0)
Plan_Readmit_Same 4 ( 1.6) 11 ( 1.0)
PlanUnplan_Same 0 ( 0.0) 1 ( 0.1)
9 1 ( 0.4) 16 ( 1.4)
RX_SUMM_RADIATION_F (%) None 230 ( 92.7) 1060 ( 93.2) 0.319
Beam Radiation 15 ( 6.0) 59 ( 5.2)
Radioactive Implants 1 ( 0.4) 0 ( 0.0)
Beam + Imp or Isotopes 0 ( 0.0) 1 ( 0.1)
Radiation, NOS 0 ( 0.0) 1 ( 0.1)
Unknown 2 ( 0.8) 16 ( 1.4)
PUF_30_DAY_MORT_CD_F (%) Alive_30 188 ( 75.8) 991 ( 87.2) <0.001
Dead_30 1 ( 0.4) 4 ( 0.4)
Unknown 10 ( 4.0) 23 ( 2.0)
NA 49 ( 19.8) 119 ( 10.5)
PUF_90_DAY_MORT_CD_F (%) Alive_90 185 ( 74.6) 971 ( 85.4) <0.001
Dead_90 1 ( 0.4) 10 ( 0.9)
Unknown 13 ( 5.2) 37 ( 3.3)
NA 49 ( 19.8) 119 ( 10.5)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 31.77 (21.49) 63.48 (41.08) <0.001
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 72 ( 29.0) 198 ( 17.4) <0.001
Pos_LumphVasc_Inv 10 ( 4.0) 21 ( 1.8)
N_A 1 ( 0.4) 0 ( 0.0)
Unknown 165 ( 66.5) 284 ( 25.0)
NA 0 ( 0.0) 634 ( 55.8)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 63 ( 25.4) 62 ( 5.5) <0.001
Robot_Assist 0 ( 0.0) 2 ( 0.2)
Endo_Lap 4 ( 1.6) 14 ( 1.2)
Endo_Lap_to_Open 1 ( 0.4) 1 ( 0.1)
Open_Unknown 180 ( 72.6) 424 ( 37.3)
NA 0 ( 0.0) 634 ( 55.8)
SURG_RAD_SEQ (%) Surg Alone 190 ( 76.6) 989 ( 87.0) <0.001
Surg then Rad 7 ( 2.8) 17 ( 1.5)
Rad Alone 9 ( 3.6) 44 ( 3.9)
No Treatment 40 ( 16.1) 65 ( 5.7)
Other 2 ( 0.8) 22 ( 1.9)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 180 ( 72.6) 957 ( 84.2) <0.001
Surg then Rad, No Chemo 6 ( 2.4) 14 ( 1.2)
Surg then Rad, Yes Chemo 1 ( 0.4) 3 ( 0.3)
Surg, No rad, Yes Chemo 3 ( 1.2) 9 ( 0.8)
No Surg, No Rad, Yes Chemo 5 ( 2.0) 4 ( 0.4)
No Surg, No Rad, No Chemo 34 ( 13.7) 60 ( 5.3)
Other 10 ( 4.0) 46 ( 4.0)
Rad, No Surg, Yes Chemo 1 ( 0.4) 9 ( 0.8)
Rad, No Surg, No Chemo 8 ( 3.2) 35 ( 3.1)
T_SIZE (%) No Tumor 0 ( 0.0) 1 ( 0.1) 0.006
Microscopic focus 4 ( 1.6) 22 ( 1.9)
< 1 cm 17 ( 6.9) 80 ( 7.0)
1-2 cm 9 ( 3.6) 90 ( 7.9)
2-3 cm 16 ( 6.5) 77 ( 6.8)
3-4 cm 15 ( 6.0) 102 ( 9.0)
4-5 cm 26 ( 10.5) 54 ( 4.7)
5-6 cm 10 ( 4.0) 63 ( 5.5)
>6 cm 28 ( 11.3) 156 ( 13.7)
NA_unk 123 ( 49.6) 492 ( 43.3)
SURGERY_YN (%) No 49 ( 19.8) 107 ( 9.4) <0.001
Ukn 0 ( 0.0) 10 ( 0.9)
Yes 199 ( 80.2) 1020 ( 89.7)
RADIATION_YN (%) No 230 ( 92.7) 1060 ( 93.2) 0.606
Yes 16 ( 6.5) 61 ( 5.4)
NA 2 ( 0.8) 16 ( 1.4)
CHEMO_YN (%) No 230 ( 92.7) 1076 ( 94.6) 0.248
Yes 10 ( 4.0) 25 ( 2.2)
Ukn 8 ( 3.2) 36 ( 3.2)
mets_at_dx (%) Bone 4 ( 1.6) 1 ( 0.1) 0.002
None/Other/Unk/NA 244 ( 98.4) 1136 ( 99.9)
MEDICAID_EXPN_CODE (%) Non-Expansion State 0 ( 0.0) 498 ( 43.8) <0.001
Jan 2014 Expansion States 109 ( 44.0) 355 ( 31.2)
Early Expansion States (2010-13) 139 ( 56.0) 101 ( 8.9)
Late Expansion States (> Jan 2014) 0 ( 0.0) 183 ( 16.1)
SITE_TEXT (%) C44.2 External ear 0 ( 0.0) 2 ( 0.2) 0.480
C44.3 Skin of ear and unspecified parts of face 1 ( 0.4) 1 ( 0.1)
C44.4 Skin of scalp and neck 1 ( 0.4) 2 ( 0.2)
C44.5 Skin of trunk 59 ( 23.8) 230 ( 20.2)
C44.6 Skin of upper limb and shoulder 2 ( 0.8) 5 ( 0.4)
C44.7 Skin of lower limb and hip 4 ( 1.6) 8 ( 0.7)
C44.8 Overlapping lesion of skin 3 ( 1.2) 8 ( 0.7)
C44.9 Skin, NOS 4 ( 1.6) 15 ( 1.3)
C51.0 Labium majus 15 ( 6.0) 81 ( 7.1)
C51.1 Labium minus 3 ( 1.2) 11 ( 1.0)
C51.2 Clitoris 1 ( 0.4) 1 ( 0.1)
C51.8 Overlapping lesion of vulva 7 ( 2.8) 54 ( 4.7)
C51.9 Vulva, NOS 140 ( 56.5) 700 ( 61.6)
C52.9 Vagina, NOS 0 ( 0.0) 1 ( 0.1)
C60.2 Body of penis 1 ( 0.4) 1 ( 0.1)
C60.8 Overlapping lesion of penis 1 ( 0.4) 1 ( 0.1)
C60.9 Penis 6 ( 2.4) 16 ( 1.4)

p_table(data,
        vars = c("YEAR_OF_DIAGNOSIS"),
        strata = c("MEDICAID_EXPN_CODE"))
level Non-Expansion State Jan 2014 Expansion States Early Expansion States (2010-13) Late Expansion States (> Jan 2014) Suppressed for Ages 0 - 39 p test
n 482 450 239 175 14
YEAR_OF_DIAGNOSIS (%) 2004 32 ( 6.6) 23 ( 5.1) 19 ( 7.9) 9 ( 5.1) 1 ( 7.1) NaN
2005 40 ( 8.3) 32 ( 7.1) 8 ( 3.3) 8 ( 4.6) 1 ( 7.1)
2006 31 ( 6.4) 37 ( 8.2) 20 ( 8.4) 12 ( 6.9) 2 (14.3)
2007 44 ( 9.1) 39 ( 8.7) 13 ( 5.4) 15 ( 8.6) 3 (21.4)
2008 48 (10.0) 37 ( 8.2) 20 ( 8.4) 18 (10.3) 0 ( 0.0)
2009 37 ( 7.7) 38 ( 8.4) 20 ( 8.4) 15 ( 8.6) 0 ( 0.0)
2010 33 ( 6.8) 43 ( 9.6) 26 (10.9) 15 ( 8.6) 0 ( 0.0)
2011 44 ( 9.1) 32 ( 7.1) 25 (10.5) 23 (13.1) 1 ( 7.1)
2012 44 ( 9.1) 28 ( 6.2) 18 ( 7.5) 11 ( 6.3) 2 (14.3)
2013 47 ( 9.8) 33 ( 7.3) 23 ( 9.6) 14 ( 8.0) 1 ( 7.1)
2014 39 ( 8.1) 42 ( 9.3) 19 ( 7.9) 20 (11.4) 1 ( 7.1)
2015 43 ( 8.9) 66 (14.7) 28 (11.7) 15 ( 8.6) 2 (14.3)
2016 0 ( 0.0) 0 ( 0.0) 0 ( 0.0) 0 ( 0.0) 0 ( 0.0)
preExpMedicare  <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))

    2-sample test for equality of proportions with continuity correction

data:  c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 0.10956, df = 1, p-value = 0.7406
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.05589135  0.08344677
sample estimates:
   prop 1    prop 2 
0.6251137 0.6113360 
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>% 
                            filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>% 
                             filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion 
prop.test(c(preExpNoInsurance, postExpNoInsurance), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
Chi-squared approximation may be incorrect

    2-sample test for equality of proportions with continuity correction

data:  c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 6.354e-31, df = 1, p-value = 1
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.01743832  0.01780671
sample estimates:
    prop 1     prop 2 
0.01637853 0.01619433 
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")

level Post-Expansion Pre-Expansion p test
n 248 1137
DX_RX_STARTED_DAYS (mean (sd)) 48.96 (44.78) 48.91 (143.60) 0.996

data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")

Kaplan Meier Analysis

All

uni_var(test_var = "All", data_imp = data)
_________________________________________________
   
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

      n  events  median 0.95LCL 0.95UCL 
   1360     329     142     128      NA 

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1184      48    0.963 0.00528        0.952        0.973
   24   1032      52    0.919 0.00783        0.903        0.934
   36    864      40    0.880 0.00957        0.862        0.899
   48    724      34    0.843 0.01107        0.822        0.865
   60    592      44    0.788 0.01309        0.763        0.815
  120    125      95    0.586 0.02187        0.545        0.631



   
## Univariable Cox Proportional Hazard Model for:  All

[1] "Only one level, no Cox model performed"




   
## Unadjusted Kaplan Meier Overall Survival Curve for:  All

Facility Type

uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
   
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

   14 observations deleted due to missingness 
                                                n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program       31      8     NA    79.8      NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 462    126    128   115.9      NA
FACILITY_TYPE_F=Academic/Research Program     654    144    155   126.1      NA
FACILITY_TYPE_F=Integrated Network Ca Program 199     51    131   113.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

14 observations deleted due to missingness 
                FACILITY_TYPE_F=Community Cancer Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     26       1    0.963  0.0363        0.894        1.000
   24     23       1    0.926  0.0504        0.832        1.000
   36     19       1    0.882  0.0645        0.764        1.000
   48     15       0    0.882  0.0645        0.764        1.000
   60     14       1    0.823  0.0827        0.676        1.000
  120      5       4    0.525  0.1366        0.316        0.875

                FACILITY_TYPE_F=Comprehensive Comm Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    393      24    0.946  0.0108        0.925        0.967
   24    345      18    0.901  0.0145        0.873        0.930
   36    294      14    0.862  0.0172        0.829        0.897
   48    250      17    0.811  0.0203        0.772        0.851
   60    197      16    0.753  0.0234        0.708        0.800
  120     34      31    0.555  0.0384        0.484        0.635

                FACILITY_TYPE_F=Academic/Research Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    581      15    0.976 0.00624        0.963        0.988
   24    505      24    0.933 0.01037        0.913        0.954
   36    417      20    0.893 0.01323        0.868        0.919
   48    352      10    0.870 0.01476        0.842        0.900
   60    294      20    0.818 0.01792        0.784        0.854
  120     64      48    0.597 0.03241        0.537        0.664

                FACILITY_TYPE_F=Integrated Network Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    173       8    0.957  0.0147        0.929        0.987
   24    148       9    0.904  0.0221        0.862        0.949
   36    126       5    0.871  0.0258        0.822        0.923
   48    100       7    0.818  0.0311        0.760        0.882
   60     80       7    0.758  0.0362        0.691        0.833
  120     19      12    0.596  0.0533        0.500        0.710




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_TYPE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

  n= 1346, number of events= 329 
   (14 observations deleted due to missingness)

                                                 coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program  0.09863   1.10366  0.36480  0.270    0.787
FACILITY_TYPE_FAcademic/Research Program     -0.16094   0.85135  0.36339 -0.443    0.658
FACILITY_TYPE_FIntegrated Network Ca Program  0.03928   1.04006  0.38045  0.103    0.918

                                             exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program    1.1037     0.9061    0.5399     2.256
FACILITY_TYPE_FAcademic/Research Program        0.8513     1.1746    0.4176     1.735
FACILITY_TYPE_FIntegrated Network Ca Program    1.0401     0.9615    0.4934     2.192

Concordance= 0.543  (se = 0.016 )
Rsquare= 0.004   (max possible= 0.957 )
Likelihood ratio test= 4.81  on 3 df,   p=0.1859
Wald test            = 4.8  on 3 df,   p=0.1873
Score (logrank) test = 4.82  on 3 df,   p=0.1854
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_TYPE_F

Facility Location

uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
   
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

   14 observations deleted due to missingness 
                                         n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England         59     18    111    70.2      NA
FACILITY_LOCATION_F=Middle Atlantic    231     52     NA   115.0      NA
FACILITY_LOCATION_F=South Atlantic     255     51     NA   126.1      NA
FACILITY_LOCATION_F=East North Central 222     60    133   105.8      NA
FACILITY_LOCATION_F=East South Central  89     20    133   110.7      NA
FACILITY_LOCATION_F=West North Central 141     38    125    84.9      NA
FACILITY_LOCATION_F=West South Central  99     26     NA   125.6      NA
FACILITY_LOCATION_F=Mountain            79     25    128   106.7      NA
FACILITY_LOCATION_F=Pacific            171     39    150   149.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

14 observations deleted due to missingness 
                FACILITY_LOCATION_F=New England 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     52       2    0.964  0.0253        0.915        1.000
   24     43       3    0.905  0.0404        0.829        0.988
   36     37       0    0.905  0.0404        0.829        0.988
   48     30       3    0.823  0.0583        0.716        0.946
   60     21       4    0.700  0.0756        0.567        0.865
  120      4       5    0.429  0.1213        0.247        0.747

                FACILITY_LOCATION_F=Middle Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    213       4    0.982 0.00896        0.965        1.000
   24    180      12    0.923 0.01846        0.888        0.960
   36    146       6    0.890 0.02227        0.847        0.935
   48    118       8    0.837 0.02768        0.785        0.893
   60     98       6    0.793 0.03150        0.734        0.858
  120     19      16    0.577 0.05660        0.476        0.700

                FACILITY_LOCATION_F=South Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    224       7    0.971  0.0108        0.950        0.992
   24    207       3    0.957  0.0132        0.932        0.984
   36    178       8    0.918  0.0186        0.883        0.955
   48    152       6    0.886  0.0221        0.843        0.930
   60    128       8    0.836  0.0271        0.784        0.890
  120     28      16    0.651  0.0493        0.561        0.755

                FACILITY_LOCATION_F=East North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    198      10    0.954  0.0143        0.926        0.982
   24    178       6    0.924  0.0183        0.889        0.960
   36    151       7    0.884  0.0229        0.840        0.930
   48    125       5    0.852  0.0261        0.803        0.905
   60    105       8    0.795  0.0313        0.736        0.859
  120     18      22    0.537  0.0545        0.440        0.655

                FACILITY_LOCATION_F=East South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     74       2    0.976  0.0165        0.945        1.000
   24     67       3    0.935  0.0283        0.881        0.992
   36     54       4    0.872  0.0401        0.797        0.955
   48     48       1    0.856  0.0427        0.776        0.944
   60     36       3    0.795  0.0521        0.700        0.904
  120      7       6    0.604  0.0826        0.461        0.789

                FACILITY_LOCATION_F=West North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    119       4    0.970  0.0150        0.941        0.999
   24     98       9    0.892  0.0284        0.838        0.949
   36     80       3    0.861  0.0325        0.800        0.927
   48     59       7    0.781  0.0413        0.704        0.867
   60     47       2    0.753  0.0444        0.671        0.845
  120     11       9    0.536  0.0719        0.412        0.697

                FACILITY_LOCATION_F=West South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     81       5    0.945  0.0241        0.899        0.993
   24     73       4    0.897  0.0327        0.835        0.963
   36     66       3    0.860  0.0377        0.789        0.937
   48     59       2    0.833  0.0411        0.756        0.917
   60     46       5    0.757  0.0494        0.666        0.860
  120      8       6    0.622  0.0662        0.505        0.767

                FACILITY_LOCATION_F=Mountain 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     70       4    0.946  0.0261        0.896        0.999
   24     60       3    0.904  0.0346        0.839        0.974
   36     51       3    0.856  0.0425        0.776        0.943
   48     44       2    0.820  0.0476        0.732        0.919
   60     38       3    0.761  0.0550        0.661        0.877
  120     12       8    0.533  0.0805        0.397        0.717

                FACILITY_LOCATION_F=Pacific 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    142      10    0.939  0.0188        0.903        0.976
   24    115       9    0.876  0.0267        0.825        0.930
   36     93       6    0.828  0.0318        0.768        0.892
   48     82       0    0.828  0.0318        0.768        0.892
   60     66       5    0.772  0.0382        0.700        0.850
  120     15       7    0.640  0.0577        0.536        0.763




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_LOCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

  n= 1346, number of events= 329 
   (14 observations deleted due to missingness)

                                         coef exp(coef) se(coef)      z Pr(>|z|)  
FACILITY_LOCATION_FMiddle Atlantic    -0.4202    0.6569   0.2737 -1.536   0.1247  
FACILITY_LOCATION_FSouth Atlantic     -0.6586    0.5176   0.2745 -2.400   0.0164 *
FACILITY_LOCATION_FEast North Central -0.3203    0.7259   0.2690 -1.191   0.2337  
FACILITY_LOCATION_FEast South Central -0.4575    0.6329   0.3252 -1.407   0.1594  
FACILITY_LOCATION_FWest North Central -0.0866    0.9170   0.2862 -0.303   0.7622  
FACILITY_LOCATION_FWest South Central -0.3416    0.7106   0.3069 -1.113   0.2657  
FACILITY_LOCATION_FMountain           -0.2283    0.7959   0.3097 -0.737   0.4610  
FACILITY_LOCATION_FPacific            -0.3479    0.7062   0.2852 -1.220   0.2226  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic       0.6569      1.522    0.3842    1.1232
FACILITY_LOCATION_FSouth Atlantic        0.5176      1.932    0.3023    0.8863
FACILITY_LOCATION_FEast North Central    0.7259      1.378    0.4285    1.2298
FACILITY_LOCATION_FEast South Central    0.6329      1.580    0.3346    1.1970
FACILITY_LOCATION_FWest North Central    0.9170      1.090    0.5233    1.6069
FACILITY_LOCATION_FWest South Central    0.7106      1.407    0.3894    1.2969
FACILITY_LOCATION_FMountain              0.7959      1.256    0.4338    1.4603
FACILITY_LOCATION_FPacific               0.7062      1.416    0.4038    1.2351

Concordance= 0.547  (se = 0.018 )
Rsquare= 0.008   (max possible= 0.957 )
Likelihood ratio test= 10.59  on 8 df,   p=0.2262
Wald test            = 10.59  on 8 df,   p=0.2263
Score (logrank) test = 10.75  on 8 df,   p=0.2164
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_LOCATION_F

Facility Geography

uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
   
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

   14 observations deleted due to missingness 
                               n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 290     70     NA     111      NA
FACILITY_GEOGRAPHY=South     354     77     NA     126      NA
FACILITY_GEOGRAPHY=Midwest   452    118    126     111      NA
FACILITY_GEOGRAPHY=West      250     64    150     128      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

14 observations deleted due to missingness 
                FACILITY_GEOGRAPHY=Northeast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    265       6    0.978 0.00875        0.961        0.996
   24    223      15    0.920 0.01682        0.887        0.953
   36    183       6    0.893 0.01957        0.856        0.932
   48    148      11    0.835 0.02496        0.787        0.885
   60    119      10    0.776 0.02940        0.720        0.836
  120     23      21    0.549 0.05180        0.456        0.660

                FACILITY_GEOGRAPHY=South 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    305      12    0.964  0.0103        0.944        0.984
   24    280       7    0.941  0.0132        0.915        0.967
   36    244      11    0.902  0.0170        0.869        0.936
   48    211       8    0.871  0.0197        0.834        0.911
   60    174      13    0.813  0.0240        0.768        0.862
  120     36      22    0.640  0.0407        0.565        0.725

                FACILITY_GEOGRAPHY=Midwest 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    391      16    0.963  0.0091        0.945        0.981
   24    343      18    0.917  0.0137        0.890        0.944
   36    285      14    0.875  0.0170        0.843        0.909
   48    232      13    0.833  0.0198        0.795        0.873
   60    188      13    0.783  0.0230        0.739        0.829
  120     36      37    0.549  0.0387        0.478        0.630

                FACILITY_GEOGRAPHY=West 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    212      14    0.941  0.0153        0.912        0.972
   24    175      12    0.885  0.0212        0.845        0.928
   36    144       9    0.837  0.0255        0.788        0.888
   48    126       2    0.824  0.0267        0.773        0.878
   60    104       8    0.767  0.0315        0.708        0.832
  120     27      15    0.591  0.0493        0.502        0.696




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_GEOGRAPHY

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

  n= 1346, number of events= 329 
   (14 observations deleted due to missingness)

                              coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_GEOGRAPHYSouth   -0.23411   0.79128  0.16534 -1.416    0.157
FACILITY_GEOGRAPHYMidwest  0.05075   1.05206  0.15096  0.336    0.737
FACILITY_GEOGRAPHYWest     0.02548   1.02581  0.17315  0.147    0.883

                          exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth      0.7913     1.2638    0.5723     1.094
FACILITY_GEOGRAPHYMidwest    1.0521     0.9505    0.7826     1.414
FACILITY_GEOGRAPHYWest       1.0258     0.9748    0.7306     1.440

Concordance= 0.526  (se = 0.017 )
Rsquare= 0.003   (max possible= 0.957 )
Likelihood ratio test= 4.41  on 3 df,   p=0.2201
Wald test            = 4.23  on 3 df,   p=0.2375
Score (logrank) test = 4.26  on 3 df,   p=0.2351
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_GEOGRAPHY

Age Group

uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
   
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                 n events median 0.95LCL 0.95UCL
AGE_F=(0,54]   144     10     NA      NA      NA
AGE_F=(54,64]  254     25     NA     155      NA
AGE_F=(64,74]  421     68  149.6     132      NA
AGE_F=(74,100] 541    226   81.8      73    95.5

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                AGE_F=(0,54] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    127       1    0.993 0.00697        0.979        1.000
   24    119       1    0.985 0.01060        0.964        1.000
   36    106       1    0.976 0.01358        0.950        1.000
   48     93       0    0.976 0.01358        0.950        1.000
   60     76       4    0.930 0.02586        0.881        0.983
  120     24       2    0.897 0.03449        0.832        0.967

                AGE_F=(54,64] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    227       3    0.988 0.00695        0.974        1.000
   24    209       6    0.961 0.01288        0.936        0.986
   36    176       2    0.950 0.01475        0.922        0.979
   48    151       3    0.933 0.01755        0.899        0.968
   60    126       2    0.920 0.01961        0.882        0.959
  120     37       6    0.863 0.02906        0.808        0.922

                AGE_F=(64,74] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    370       7    0.983 0.00653        0.970        0.995
   24    319      11    0.952 0.01111        0.930        0.974
   36    265      13    0.911 0.01531        0.882        0.942
   48    228       2    0.904 0.01601        0.873        0.936
   60    190       8    0.871 0.01924        0.834        0.910
  120     37      22    0.684 0.04208        0.606        0.772

                AGE_F=(74,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    460      37    0.928  0.0115        0.905        0.950
   24    385      34    0.856  0.0159        0.825        0.888
   36    317      24    0.798  0.0187        0.762        0.835
   48    252      29    0.720  0.0218        0.679        0.764
   60    200      30    0.630  0.0245        0.584        0.680
  120     27      65    0.306  0.0347        0.245        0.382




   
## Univariable Cox Proportional Hazard Model for:  AGE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

  n= 1360, number of events= 329 

                coef exp(coef) se(coef)     z Pr(>|z|)    
AGE_F(54,64]  0.4320    1.5404   0.3743 1.154  0.24839    
AGE_F(64,74]  1.0943    2.9870   0.3392 3.226  0.00126 ** 
AGE_F(74,100] 2.2006    9.0307   0.3242 6.787 1.14e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64]      1.540     0.6492    0.7397     3.208
AGE_F(64,74]      2.987     0.3348    1.5363     5.808
AGE_F(74,100]     9.031     0.1107    4.7833    17.050

Concordance= 0.685  (se = 0.017 )
Rsquare= 0.124   (max possible= 0.956 )
Likelihood ratio test= 180.1  on 3 df,   p=0
Wald test            = 147  on 3 df,   p=0
Score (logrank) test = 182.2  on 3 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_F

Age Group

uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
   
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                   n events median 0.95LCL 0.95UCL
AGE_40=(0,40]     18      1     NA      NA      NA
AGE_40=(40,100] 1342    328    142     126      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                AGE_40=(0,40] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       0    1.000  0.0000        1.000            1
   24     13       1    0.929  0.0688        0.803            1
   36     10       0    0.929  0.0688        0.803            1
   48      9       0    0.929  0.0688        0.803            1
   60      9       0    0.929  0.0688        0.803            1
  120      3       0    0.929  0.0688        0.803            1

                AGE_40=(40,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1170      48    0.962 0.00534        0.952        0.973
   24   1019      51    0.918 0.00788        0.903        0.934
   36    854      40    0.880 0.00965        0.861        0.899
   48    715      34    0.842 0.01116        0.821        0.864
   60    583      44    0.787 0.01321        0.761        0.813
  120    122      95    0.581 0.02214        0.540        0.626




   
## Univariable Cox Proportional Hazard Model for:  AGE_40

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

  n= 1360, number of events= 329 

                coef exp(coef) se(coef)     z Pr(>|z|)
AGE_40(40,100] 1.637     5.138    1.002 1.634    0.102

               exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100]     5.138     0.1946    0.7212     36.61

Concordance= 0.504  (se = 0.003 )
Rsquare= 0.004   (max possible= 0.956 )
Likelihood ratio test= 4.94  on 1 df,   p=0.02622
Wald test            = 2.67  on 1 df,   p=0.1023
Score (logrank) test = 3.32  on 1 df,   p=0.06842
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_40

Gender

uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
   
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                n events median 0.95LCL 0.95UCL
SEX_F=Male    261     86   82.8    73.6      NA
SEX_F=Female 1099    243  155.4   130.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                SEX_F=Male 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    223      11    0.956  0.0131        0.930        0.982
   24    185      16    0.883  0.0213        0.842        0.925
   36    144      13    0.816  0.0266        0.766        0.870
   48    115      12    0.744  0.0314        0.684        0.808
   60     89      12    0.662  0.0357        0.596        0.736
  120     17      20    0.435  0.0494        0.348        0.544

                SEX_F=Female 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    961      37    0.964 0.00574        0.953        0.976
   24    847      36    0.927 0.00826        0.911        0.943
   36    720      27    0.895 0.01000        0.876        0.915
   48    609      22    0.866 0.01144        0.844        0.889
   60    503      32    0.817 0.01370        0.790        0.844
  120    108      75    0.619 0.02419        0.573        0.668




   
## Univariable Cox Proportional Hazard Model for:  SEX_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

  n= 1360, number of events= 329 

               coef exp(coef) se(coef)      z Pr(>|z|)    
SEX_FFemale -0.6336    0.5307   0.1260 -5.029 4.93e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale    0.5307      1.884    0.4146    0.6793

Concordance= 0.555  (se = 0.012 )
Rsquare= 0.017   (max possible= 0.956 )
Likelihood ratio test= 22.71  on 1 df,   p=1.882e-06
Wald test            = 25.29  on 1 df,   p=4.927e-07
Score (logrank) test = 26.14  on 1 df,   p=3.175e-07
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SEX_F

RACE_F

uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
   
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                    n events median 0.95LCL 0.95UCL
RACE_F=White     1229    301    142   128.2      NA
RACE_F=Black       25      7     NA    71.5      NA
RACE_F=Other/Unk   35     11    111    97.2      NA
RACE_F=Asian       71     10     NA   108.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                RACE_F=White 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1075      41    0.965 0.00540        0.954        0.975
   24    938      50    0.918 0.00826        0.902        0.934
   36    787      36    0.880 0.01005        0.861        0.900
   48    653      32    0.842 0.01167        0.819        0.865
   60    533      41    0.785 0.01384        0.759        0.813
  120    115      85    0.591 0.02241        0.549        0.637

                RACE_F=Black 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     21       2    0.918  0.0554        0.816        1.000
   24     17       1    0.870  0.0705        0.742        1.000
   36     15       0    0.870  0.0705        0.742        1.000
   48     13       2    0.754  0.0978        0.585        0.972
   60     11       1    0.691  0.1080        0.509        0.939

                RACE_F=Other/Unk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       2    0.938  0.0422        0.859        1.000
   24     26       1    0.905  0.0523        0.808        1.000
   36     20       2    0.824  0.0723        0.694        0.979
   48     18       0    0.824  0.0723        0.694        0.979
   60     16       1    0.779  0.0815        0.634        0.956
  120      3       5    0.363  0.1446        0.166        0.792

                RACE_F=Asian 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     58       3    0.953  0.0265        0.903        1.000
   24     51       0    0.953  0.0265        0.903        1.000
   36     42       2    0.912  0.0380        0.841        0.990
   48     40       0    0.912  0.0380        0.841        0.990
   60     32       1    0.887  0.0446        0.804        0.979
  120      7       4    0.663  0.1136        0.474        0.927




   
## Univariable Cox Proportional Hazard Model for:  RACE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

  n= 1360, number of events= 329 

                   coef exp(coef) se(coef)      z Pr(>|z|)
RACE_FBlack      0.3512    1.4208   0.3828  0.917    0.359
RACE_FOther/Unk  0.1943    1.2145   0.3072  0.633    0.527
RACE_FAsian     -0.5282    0.5897   0.3215 -1.643    0.100

                exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack        1.4208     0.7038    0.6709     3.009
RACE_FOther/Unk    1.2145     0.8234    0.6652     2.218
RACE_FAsian        0.5897     1.6959    0.3140     1.107

Concordance= 0.516  (se = 0.009 )
Rsquare= 0.003   (max possible= 0.956 )
Likelihood ratio test= 4.48  on 3 df,   p=0.2138
Wald test            = 4.06  on 3 df,   p=0.2547
Score (logrank) test = 4.15  on 3 df,   p=0.2456
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RACE_F

Hispanic

uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
   
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                    n events median 0.95LCL 0.95UCL
HISPANIC=No      1234    294    142   128.2      NA
HISPANIC=Yes       52      9     NA   125.6      NA
HISPANIC=Unknown   74     26     NA    97.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                HISPANIC=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1069      44    0.962 0.00559        0.951        0.973
   24    929      44    0.921 0.00814        0.905        0.937
   36    773      36    0.882 0.01002        0.863        0.902
   48    645      29    0.847 0.01160        0.824        0.870
   60    525      40    0.790 0.01385        0.763        0.818
  120    106      88    0.575 0.02383        0.530        0.624

                HISPANIC=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     47       0    1.000  0.0000        1.000        1.000
   24     41       4    0.913  0.0416        0.835        0.998
   36     36       1    0.890  0.0467        0.803        0.986
   48     28       1    0.864  0.0518        0.768        0.972
   60     23       1    0.831  0.0595        0.722        0.956
  120      9       0    0.831  0.0595        0.722        0.956

                HISPANIC=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     68       4    0.945  0.0268        0.894        0.999
   24     62       4    0.888  0.0372        0.818        0.964
   36     55       3    0.843  0.0435        0.762        0.933
   48     51       4    0.782  0.0500        0.690        0.886
   60     44       3    0.736  0.0537        0.637        0.849
  120     10       7    0.571  0.0706        0.448        0.728




   
## Univariable Cox Proportional Hazard Model for:  HISPANIC

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

  n= 1360, number of events= 329 

                   coef exp(coef) se(coef)      z Pr(>|z|)
HISPANICYes     -0.4176    0.6586   0.3385 -1.234    0.217
HISPANICUnknown  0.1136    1.1203   0.2050  0.554    0.580

                exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes        0.6586     1.5184    0.3392     1.279
HISPANICUnknown    1.1203     0.8927    0.7496     1.674

Concordance= 0.514  (se = 0.009 )
Rsquare= 0.002   (max possible= 0.956 )
Likelihood ratio test= 2.12  on 2 df,   p=0.3459
Wald test            = 1.9  on 2 df,   p=0.3865
Score (logrank) test = 1.93  on 2 df,   p=0.3816
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  HISPANIC

Insurance Status

uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
   
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                               n events median 0.95LCL 0.95UCL
INSURANCE_F=Private          453     54     NA   155.4      NA
INSURANCE_F=None              23      4     NA    90.3      NA
INSURANCE_F=Medicaid          22      3     NA      NA      NA
INSURANCE_F=Medicare         838    265    110    97.4     125
INSURANCE_F=Other Government   8      0     NA      NA      NA
INSURANCE_F=Unknown           16      3     NA   105.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                INSURANCE_F=Private 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    399       6    0.986 0.00574        0.975        0.997
   24    363      13    0.952 0.01066        0.932        0.974
   36    314       5    0.938 0.01220        0.915        0.963
   48    269       6    0.919 0.01426        0.892        0.948
   60    224       6    0.897 0.01658        0.865        0.930
  120     57      13    0.812 0.02822        0.758        0.869

                INSURANCE_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       0    1.000  0.0000        1.000            1
   24     17       0    1.000  0.0000        1.000            1
   36     13       1    0.929  0.0688        0.803            1
   48     12       0    0.929  0.0688        0.803            1
   60     11       1    0.851  0.0973        0.680            1
  120      3       2    0.662  0.1402        0.437            1

                INSURANCE_F=Medicaid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     19       1    0.955  0.0444        0.871            1
   24     17       0    0.955  0.0444        0.871            1
   36     14       0    0.955  0.0444        0.871            1
   48     11       2    0.812  0.1003        0.638            1
   60     10       0    0.812  0.1003        0.638            1
  120      3       0    0.812  0.1003        0.638            1

                INSURANCE_F=Medicare 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    727      40    0.950 0.00773        0.935        0.965
   24    615      39    0.896 0.01109        0.875        0.918
   36    508      33    0.845 0.01361        0.818        0.872
   48    421      26    0.799 0.01558        0.769        0.830
   60    338      37    0.724 0.01833        0.689        0.761
  120     58      79    0.449 0.02987        0.394        0.512

                INSURANCE_F=Other Government 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       0        1       0            1            1
   24      6       0        1       0            1            1
   36      5       0        1       0            1            1
   48      3       0        1       0            1            1
   60      2       0        1       0            1            1
  120      1       0        1       0            1            1

                INSURANCE_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15       1    0.938  0.0605        0.826            1
   24     14       0    0.938  0.0605        0.826            1
   36     10       1    0.852  0.0981        0.680            1
   48      8       0    0.852  0.0981        0.680            1
   60      7       0    0.852  0.0981        0.680            1
  120      3       1    0.682  0.1715        0.416            1




   
## Univariable Cox Proportional Hazard Model for:  INSURANCE_F
Loglik converged before variable  4 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

  n= 1360, number of events= 329 

                                  coef  exp(coef)   se(coef)      z Pr(>|z|)    
INSURANCE_FNone              4.116e-01  1.509e+00  5.183e-01  0.794    0.427    
INSURANCE_FMedicaid          1.921e-01  1.212e+00  5.933e-01  0.324    0.746    
INSURANCE_FMedicare          1.182e+00  3.259e+00  1.497e-01  7.892    3e-15 ***
INSURANCE_FOther Government -1.328e+01  1.710e-06  9.117e+02 -0.015    0.988    
INSURANCE_FUnknown           3.688e-01  1.446e+00  5.936e-01  0.621    0.534    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                            exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone             1.509e+00  6.626e-01    0.5465     4.168
INSURANCE_FMedicaid         1.212e+00  8.252e-01    0.3788     3.877
INSURANCE_FMedicare         3.259e+00  3.068e-01    2.4305     4.371
INSURANCE_FOther Government 1.710e-06  5.849e+05    0.0000       Inf
INSURANCE_FUnknown          1.446e+00  6.916e-01    0.4518     4.628

Concordance= 0.61  (se = 0.015 )
Rsquare= 0.06   (max possible= 0.956 )
Likelihood ratio test= 84.85  on 5 df,   p=1.11e-16
Wald test            = 66.36  on 5 df,   p=5.856e-13
Score (logrank) test = 75.91  on 5 df,   p=5.995e-15
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 6 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  INSURANCE_F

Overall Survival pre/post-ACA expansion

uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
   
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                             n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion  248     36     NA    82.8      NA
EXPN_GROUP=Pre-Expansion  1137    303    142   128.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                EXPN_GROUP=Post-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    206       8    0.965  0.0121        0.942        0.989
   24    144      16    0.882  0.0229        0.838        0.928
   36     79       6    0.838  0.0280        0.785        0.894
   48     52       3    0.797  0.0351        0.731        0.869
   60     33       1    0.780  0.0384        0.708        0.859

                EXPN_GROUP=Pre-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1000      41    0.962 0.00580        0.951        0.974
   24    900      41    0.921 0.00835        0.905        0.938
   36    799      34    0.885 0.01009        0.865        0.905
   48    683      33    0.846 0.01167        0.824        0.870
   60    568      44    0.789 0.01376        0.762        0.816
  120    125      94    0.586 0.02213        0.545        0.631




   
## Univariable Cox Proportional Hazard Model for:  EXPN_GROUP

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

  n= 1385, number of events= 339 

                           coef exp(coef) se(coef)      z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2137    0.8076   0.1815 -1.178    0.239

                        exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion    0.8076      1.238    0.5659     1.153

Concordance= 0.514  (se = 0.01 )
Rsquare= 0.001   (max possible= 0.958 )
Likelihood ratio test= 1.32  on 1 df,   p=0.2507
Wald test            = 1.39  on 1 df,   p=0.239
Score (logrank) test = 1.39  on 1 df,   p=0.2381





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EXPN_GROUP

Education

uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
   
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

   5 observations deleted due to missingness 
                           n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more  167     43     NA     114      NA
EDUCATION_F=13 - 20.9%   320     72     NA     116      NA
EDUCATION_F=7 - 12.9%    465    132    132     108      NA
EDUCATION_F=Less than 7% 403     81    155     133      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

5 observations deleted due to missingness 
                EDUCATION_F=21% or more 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    145       8    0.949  0.0175        0.916        0.984
   24    121      10    0.879  0.0268        0.828        0.933
   36    105       4    0.848  0.0301        0.791        0.909
   48     90       3    0.823  0.0325        0.762        0.889
   60     75       4    0.784  0.0362        0.716        0.859
  120     18      12    0.597  0.0576        0.494        0.721

                EDUCATION_F=13 - 20.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    275      13    0.957  0.0117        0.934        0.980
   24    240      13    0.910  0.0168        0.878        0.944
   36    198       7    0.881  0.0196        0.844        0.920
   48    171       6    0.853  0.0220        0.811        0.898
   60    138      10    0.800  0.0264        0.750        0.853
  120     25      20    0.583  0.0491        0.494        0.687

                EDUCATION_F=7 - 12.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    401      20    0.955 0.00986        0.936        0.974
   24    352      14    0.920 0.01316        0.895        0.946
   36    291      20    0.864 0.01735        0.831        0.899
   48    242      16    0.813 0.02045        0.774        0.855
   60    192      21    0.738 0.02431        0.692        0.787
  120     44      35    0.545 0.03483        0.481        0.618

                EDUCATION_F=Less than 7% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    361       7    0.982 0.00689        0.968        0.995
   24    317      15    0.939 0.01268        0.914        0.964
   36    268       9    0.911 0.01540        0.881        0.941
   48    221       8    0.881 0.01810        0.846        0.917
   60    187       9    0.843 0.02138        0.802        0.886
  120     38      28    0.634 0.04128        0.558        0.721




   
## Univariable Cox Proportional Hazard Model for:  EDUCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

  n= 1355, number of events= 328 
   (5 observations deleted due to missingness)

                           coef exp(coef) se(coef)      z Pr(>|z|)
EDUCATION_F13 - 20.9%   -0.0936    0.9106   0.1928 -0.485    0.627
EDUCATION_F7 - 12.9%     0.1585    1.1718   0.1757  0.902    0.367
EDUCATION_FLess than 7% -0.2447    0.7829   0.1888 -1.296    0.195

                        exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9%      0.9106     1.0981    0.6241     1.329
EDUCATION_F7 - 12.9%       1.1718     0.8534    0.8305     1.653
EDUCATION_FLess than 7%    0.7829     1.2773    0.5408     1.133

Concordance= 0.552  (se = 0.017 )
Rsquare= 0.006   (max possible= 0.956 )
Likelihood ratio test= 8.76  on 3 df,   p=0.03268
Wald test            = 8.7  on 3 df,   p=0.03359
Score (logrank) test = 8.78  on 3 df,   p=0.03229
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EDUCATION_F

Urban/Rural

uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
   
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

   40 observations deleted due to missingness 
               n events median 0.95LCL 0.95UCL
U_R_F=Metro 1106    264    150   128.2      NA
U_R_F=Urban  187     50    133   108.0      NA
U_R_F=Rural   27      6     NA    97.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

40 observations deleted due to missingness 
                U_R_F=Metro 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    965      39    0.963 0.00586        0.951        0.974
   24    843      39    0.922 0.00850        0.906        0.939
   36    709      32    0.884 0.01043        0.864        0.905
   48    593      25    0.851 0.01201        0.828        0.875
   60    482      40    0.790 0.01456        0.762        0.819
  120    105      75    0.593 0.02410        0.547        0.642

                U_R_F=Urban 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    164       6    0.966  0.0135        0.940        0.993
   24    139      11    0.899  0.0233        0.854        0.946
   36    116       7    0.850  0.0284        0.796        0.908
   48     99       6    0.805  0.0324        0.744        0.871
   60     82       3    0.780  0.0345        0.715        0.850
  120     14      15    0.561  0.0582        0.458        0.688

                U_R_F=Rural 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     25       0    1.000  0.0000        1.000         1.00
   24     24       1    0.960  0.0392        0.886         1.00
   36     19       1    0.912  0.0598        0.802         1.00
   48     15       1    0.855  0.0787        0.714         1.00
   60     13       0    0.855  0.0787        0.714         1.00
  120      2       3    0.528  0.1612        0.290         0.96




   
## Univariable Cox Proportional Hazard Model for:  U_R_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

  n= 1320, number of events= 320 
   (40 observations deleted due to missingness)

              coef exp(coef) se(coef)      z Pr(>|z|)
U_R_FUrban  0.1540    1.1665   0.1544  0.997    0.319
U_R_FRural -0.1929    0.8246   0.4129 -0.467    0.640

           exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban    1.1665     0.8573    0.8618     1.579
U_R_FRural    0.8246     1.2128    0.3671     1.852

Concordance= 0.516  (se = 0.012 )
Rsquare= 0.001   (max possible= 0.955 )
Likelihood ratio test= 1.25  on 2 df,   p=0.5341
Wald test            = 1.27  on 2 df,   p=0.5292
Score (logrank) test = 1.28  on 2 df,   p=0.5283
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  U_R_F

Class (treatment at performing facility)

uni_var(test_var = "CLASS_OF_CASE_F", data_imp = data)
_________________________________________________
   
## CLASS_OF_CASE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                                  n events median 0.95LCL 0.95UCL
CLASS_OF_CASE_F=Other_Facility   27      6   84.9    53.5      NA
CLASS_OF_CASE_F=All_Part_Prim  1333    323  149.6   128.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                CLASS_OF_CASE_F=Other_Facility 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       0    1.000   0.000        1.000            1
   24     13       1    0.944   0.054        0.844            1
   36     12       0    0.944   0.054        0.844            1
   48      7       1    0.850   0.102        0.672            1
   60      6       1    0.729   0.142        0.497            1
  120      1       2    0.389   0.196        0.144            1

                CLASS_OF_CASE_F=All_Part_Prim 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1166      48    0.962 0.00536        0.952        0.973
   24   1019      51    0.918 0.00790        0.903        0.934
   36    852      40    0.879 0.00967        0.861        0.898
   48    717      33    0.843 0.01114        0.822        0.865
   60    586      43    0.789 0.01314        0.764        0.815
  120    124      93    0.588 0.02198        0.547        0.633




   
## Univariable Cox Proportional Hazard Model for:  CLASS_OF_CASE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

  n= 1360, number of events= 329 

                                coef exp(coef) se(coef)      z Pr(>|z|)
CLASS_OF_CASE_FAll_Part_Prim -0.5015    0.6056   0.4126 -1.216    0.224

                             exp(coef) exp(-coef) lower .95 upper .95
CLASS_OF_CASE_FAll_Part_Prim    0.6056      1.651    0.2698      1.36

Concordance= 0.501  (se = 0.004 )
Rsquare= 0.001   (max possible= 0.956 )
Likelihood ratio test= 1.27  on 1 df,   p=0.2606
Wald test            = 1.48  on 1 df,   p=0.2242
Score (logrank) test = 1.51  on 1 df,   p=0.2193
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CLASS_OF_CASE_F

Year

uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
   
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                         n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004  84     29     NA   141.8      NA
YEAR_OF_DIAGNOSIS=2005  89     37     NA    97.4      NA
YEAR_OF_DIAGNOSIS=2006 102     34     NA   124.8      NA
YEAR_OF_DIAGNOSIS=2007 114     43  125.1   112.8      NA
YEAR_OF_DIAGNOSIS=2008 123     39     NA   106.7      NA
YEAR_OF_DIAGNOSIS=2009 110     28     NA   100.4      NA
YEAR_OF_DIAGNOSIS=2010 117     26     NA      NA      NA
YEAR_OF_DIAGNOSIS=2011 125     29   78.3    78.3      NA
YEAR_OF_DIAGNOSIS=2012 103     16   71.5    68.4      NA
YEAR_OF_DIAGNOSIS=2013 118     24     NA      NA      NA
YEAR_OF_DIAGNOSIS=2014 121     12     NA      NA      NA
YEAR_OF_DIAGNOSIS=2015 154     12     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                YEAR_OF_DIAGNOSIS=2004 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     77       2    0.975  0.0173        0.942        1.000
   24     75       1    0.963  0.0212        0.922        1.000
   36     71       4    0.911  0.0320        0.851        0.976
   48     67       3    0.872  0.0378        0.801        0.949
   60     63       4    0.820  0.0436        0.739        0.910
  120     38       7    0.716  0.0531        0.619        0.828

                YEAR_OF_DIAGNOSIS=2005 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     76       6    0.931  0.0271        0.879        0.986
   24     72       4    0.882  0.0351        0.816        0.954
   36     70       1    0.870  0.0367        0.801        0.945
   48     64       4    0.819  0.0424        0.740        0.907
   60     58       6    0.742  0.0487        0.653        0.844
  120     37      13    0.563  0.0570        0.462        0.687

                YEAR_OF_DIAGNOSIS=2006 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     86       4    0.959  0.0201        0.921        0.999
   24     80       3    0.925  0.0273        0.873        0.980
   36     74       3    0.889  0.0331        0.827        0.957
   48     67       5    0.829  0.0405        0.753        0.912
   60     60       4    0.779  0.0450        0.696        0.873
  120     36      12    0.607  0.0563        0.506        0.728

                YEAR_OF_DIAGNOSIS=2007 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    106       4    0.964  0.0175        0.931        0.999
   24     98       6    0.909  0.0275        0.857        0.964
   36     94       2    0.890  0.0299        0.833        0.951
   48     91       3    0.862  0.0332        0.799        0.929
   60     84       6    0.805  0.0383        0.733        0.883
  120     14      20    0.553  0.0569        0.452        0.677

                YEAR_OF_DIAGNOSIS=2008 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    112       6    0.950  0.0200        0.911        0.990
   24    103       3    0.923  0.0247        0.876        0.973
   36     94       7    0.859  0.0327        0.797        0.926
   48     84       5    0.813  0.0370        0.743        0.888
   60     83       0    0.813  0.0370        0.743        0.888

                YEAR_OF_DIAGNOSIS=2009 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     99       3    0.971  0.0163        0.940        1.000
   24     94       3    0.942  0.0232        0.897        0.988
   36     91       1    0.931  0.0251        0.883        0.982
   48     83       5    0.879  0.0328        0.817        0.946
   60     71       7    0.801  0.0411        0.724        0.885

                YEAR_OF_DIAGNOSIS=2010 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    105       4    0.965  0.0173        0.931        0.999
   24     95       6    0.909  0.0275        0.857        0.964
   36     88       4    0.870  0.0325        0.808        0.936
   48     84       1    0.860  0.0337        0.796        0.928
   60     78       4    0.818  0.0379        0.748        0.896

                YEAR_OF_DIAGNOSIS=2011 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    110       3    0.975  0.0142        0.948        1.000
   24    104       4    0.939  0.0223        0.896        0.984
   36    101       2    0.921  0.0253        0.873        0.972
   48     90       2    0.902  0.0283        0.848        0.959
   60     66      12    0.774  0.0420        0.695        0.861

                YEAR_OF_DIAGNOSIS=2012 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     91       2    0.979  0.0148        0.950        1.000
   24     84       3    0.946  0.0235        0.901        0.993
   36     74       5    0.889  0.0333        0.826        0.956
   48     63       2    0.864  0.0366        0.795        0.939
   60     29       1    0.848  0.0391        0.775        0.929

                YEAR_OF_DIAGNOSIS=2013 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    104       7    0.938  0.0226        0.895        0.984
   24     92       6    0.882  0.0308        0.824        0.944
   36     77       8    0.802  0.0390        0.729        0.882
   48     31       3    0.750  0.0467        0.664        0.848

                YEAR_OF_DIAGNOSIS=2014 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     96       4    0.963  0.0183        0.928        0.999
   24     81       5    0.911  0.0285        0.857        0.968
   36     30       2    0.888  0.0321        0.827        0.953

                YEAR_OF_DIAGNOSIS=2015 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    122       3    0.978  0.0128        0.953        1.000
   24     54       8    0.888  0.0329        0.826        0.955




   
## Univariable Cox Proportional Hazard Model for:  YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

  n= 1360, number of events= 329 

                        coef exp(coef) se(coef)     z Pr(>|z|)   
YEAR_OF_DIAGNOSIS2005 0.3673    1.4439   0.2519 1.458  0.14482   
YEAR_OF_DIAGNOSIS2006 0.2749    1.3164   0.2582 1.065  0.28707   
YEAR_OF_DIAGNOSIS2007 0.4297    1.5369   0.2491 1.725  0.08450 . 
YEAR_OF_DIAGNOSIS2008 0.3854    1.4702   0.2554 1.509  0.13125   
YEAR_OF_DIAGNOSIS2009 0.2419    1.2737   0.2760 0.877  0.38075   
YEAR_OF_DIAGNOSIS2010 0.2608    1.2979   0.2823 0.924  0.35568   
YEAR_OF_DIAGNOSIS2011 0.4533    1.5736   0.2769 1.637  0.10157   
YEAR_OF_DIAGNOSIS2012 0.2886    1.3346   0.3253 0.887  0.37490   
YEAR_OF_DIAGNOSIS2013 0.8195    2.2693   0.2945 2.783  0.00539 **
YEAR_OF_DIAGNOSIS2014 0.4811    1.6178   0.3615 1.331  0.18331   
YEAR_OF_DIAGNOSIS2015 0.5897    1.8035   0.3659 1.612  0.10701   
YEAR_OF_DIAGNOSIS2016     NA        NA   0.0000    NA       NA   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                      exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005     1.444     0.6926    0.8812     2.366
YEAR_OF_DIAGNOSIS2006     1.316     0.7597    0.7936     2.184
YEAR_OF_DIAGNOSIS2007     1.537     0.6507    0.9432     2.504
YEAR_OF_DIAGNOSIS2008     1.470     0.6802    0.8913     2.425
YEAR_OF_DIAGNOSIS2009     1.274     0.7851    0.7415     2.188
YEAR_OF_DIAGNOSIS2010     1.298     0.7705    0.7463     2.257
YEAR_OF_DIAGNOSIS2011     1.574     0.6355    0.9145     2.708
YEAR_OF_DIAGNOSIS2012     1.335     0.7493    0.7055     2.525
YEAR_OF_DIAGNOSIS2013     2.269     0.4407    1.2742     4.042
YEAR_OF_DIAGNOSIS2014     1.618     0.6181    0.7965     3.286
YEAR_OF_DIAGNOSIS2015     1.803     0.5545    0.8804     3.694
YEAR_OF_DIAGNOSIS2016        NA         NA        NA        NA

Concordance= 0.542  (se = 0.018 )
Rsquare= 0.007   (max possible= 0.956 )
Likelihood ratio test= 9.57  on 11 df,   p=0.5696
Wald test            = 9.7  on 11 df,   p=0.558
Score (logrank) test = 9.85  on 11 df,   p=0.5435
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.

Primary Site

uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
   
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                                                            n events median 0.95LCL 0.95UCL
SITE_TEXT=C44.2 External ear                                2      0     NA      NA      NA
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face   2      1   7.95      NA      NA
SITE_TEXT=C44.4 Skin of scalp and neck                      3      0     NA      NA      NA
SITE_TEXT=C44.5 Skin of trunk                             287     86 131.91    81.2      NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder             7      2     NA    50.2      NA
SITE_TEXT=C44.7 Skin of lower limb and hip                 12      5  81.81    70.2      NA
SITE_TEXT=C44.8 Overlapping lesion of skin                 11      7  32.79    20.3      NA
SITE_TEXT=C44.9 Skin, NOS                                  19     10  55.92    30.2      NA
SITE_TEXT=C51.0 Labium majus                               92     16     NA      NA      NA
SITE_TEXT=C51.1 Labium minus                               15      3     NA    85.4      NA
SITE_TEXT=C51.2 Clitoris                                    2      0     NA      NA      NA
SITE_TEXT=C51.8 Overlapping lesion of vulva                60     16 149.62   128.5      NA
SITE_TEXT=C51.9 Vulva, NOS                                822    176 155.43   128.2      NA
SITE_TEXT=C52.9 Vagina, NOS                                 1      0     NA      NA      NA
SITE_TEXT=C60.2 Body of penis                               1      0     NA      NA      NA
SITE_TEXT=C60.8 Overlapping lesion of penis                 2      0     NA      NA      NA
SITE_TEXT=C60.9 Penis                                      22      7 108.06    73.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                SITE_TEXT=C44.2 External ear 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1
  120      1       0        1       0            1            1

                SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                SITE_TEXT=C44.4 Skin of scalp and neck 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       0        1       0            1            1
   24      3       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      2       0        1       0            1            1

                SITE_TEXT=C44.5 Skin of trunk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    245      11    0.960  0.0119        0.937        0.983
   24    207      15    0.898  0.0191        0.861        0.936
   36    165      14    0.833  0.0243        0.787        0.882
   48    129      13    0.763  0.0291        0.708        0.822
   60    104      11    0.694  0.0330        0.633        0.762
  120     17      20    0.503  0.0452        0.422        0.600

                SITE_TEXT=C44.6 Skin of upper limb and shoulder 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       1    0.857   0.132        0.633            1
   24      3       0    0.857   0.132        0.633            1
   36      3       0    0.857   0.132        0.633            1
   48      3       0    0.857   0.132        0.633            1
   60      2       1    0.571   0.249        0.243            1

                SITE_TEXT=C44.7 Skin of lower limb and hip 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     10       1    0.909  0.0867       0.7541            1
   24      9       1    0.818  0.1163       0.6192            1
   36      4       0    0.818  0.1163       0.6192            1
   48      4       0    0.818  0.1163       0.6192            1
   60      4       0    0.818  0.1163       0.6192            1
  120      1       2    0.273  0.2260       0.0537            1

                SITE_TEXT=C44.8 Overlapping lesion of skin 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       2      0.8   0.126        0.587        1.000
   24      5       3      0.5   0.158        0.269        0.929
   36      5       0      0.5   0.158        0.269        0.929
   48      4       1      0.4   0.155        0.187        0.855
   60      4       0      0.4   0.155        0.187        0.855

                SITE_TEXT=C44.9 Skin, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     16       1    0.947  0.0512        0.852        1.000
   24     12       2    0.820  0.0953        0.653        1.000
   36      8       3    0.615  0.1249        0.413        0.916
   48      7       0    0.615  0.1249        0.413        0.916
   60      4       3    0.351  0.1354        0.165        0.748
  120      2       1    0.264  0.1269        0.103        0.677

                SITE_TEXT=C51.0 Labium majus 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     79       2    0.977  0.0159        0.947        1.000
   24     68       3    0.938  0.0268        0.887        0.992
   36     60       0    0.938  0.0268        0.887        0.992
   48     49       2    0.904  0.0350        0.838        0.976
   60     47       0    0.904  0.0350        0.838        0.976
  120     12       9    0.661  0.0785        0.523        0.834

                SITE_TEXT=C51.1 Labium minus 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13       1    0.929  0.0688        0.803            1
   24     11       0    0.929  0.0688        0.803            1
   36     10       1    0.844  0.1019        0.666            1
   48      8       0    0.844  0.1019        0.666            1
   60      7       0    0.844  0.1019        0.666            1
  120      1       1    0.703  0.1540        0.458            1

                SITE_TEXT=C51.2 Clitoris 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                SITE_TEXT=C51.8 Overlapping lesion of vulva 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     49       3    0.946  0.0303        0.888        1.000
   24     49       0    0.946  0.0303        0.888        1.000
   36     42       3    0.884  0.0447        0.801        0.976
   48     36       2    0.840  0.0524        0.743        0.949
   60     32       1    0.814  0.0566        0.711        0.933
  120      9       5    0.645  0.0833        0.501        0.831

                SITE_TEXT=C51.9 Vulva, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    726      24    0.969 0.00618        0.957        0.981
   24    643      27    0.932 0.00922        0.914        0.950
   36    545      19    0.902 0.01119        0.880        0.924
   48    464      15    0.876 0.01278        0.851        0.901
   60    373      27    0.820 0.01580        0.790        0.852
  120     80      53    0.620 0.02887        0.566        0.679

                SITE_TEXT=C52.9 Vagina, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1

                SITE_TEXT=C60.2 Body of penis 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                SITE_TEXT=C60.8 Overlapping lesion of penis 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1
  120      1       0        1       0            1            1

                SITE_TEXT=C60.9 Penis 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     21       1    0.955  0.0444       0.8714            1
   24     16       1    0.898  0.0687       0.7734            1
   36     15       0    0.898  0.0687       0.7734            1
   48     13       1    0.834  0.0888       0.6771            1
   60      9       1    0.770  0.1026       0.5931            1
  120      1       3    0.257  0.1990       0.0562            1




   
## Univariable Cox Proportional Hazard Model for:  SITE_TEXT
Loglik converged before variable  11,13,22,25,28,29 ; beta may be infinite. X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 9 10 19 26 27 30
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

  n= 1360, number of events= 329 

                                                               coef  exp(coef)   se(coef)      z Pr(>|z|)   
SITE_TEXTC00.1 External Lip: Lower NOS                           NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.2  External Lip: NOS                                NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.3 Lip: Upper Mucosa                                 NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.4 Lip: Lower Mucosa                                 NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.5 Lip: Mucosa NOS                                   NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.6 Lip: Commissure                                   NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.8 Lip: Overlapping                                  NA         NA  0.000e+00     NA       NA   
SITE_TEXTC00.9 Lip, NOS                                          NA         NA  0.000e+00     NA       NA   
SITE_TEXTC44.0 Skin of lip, NOS                                  NA         NA  0.000e+00     NA       NA   
SITE_TEXTC44.1 Eyelid                                            NA         NA  0.000e+00     NA       NA   
SITE_TEXTC44.2 External ear                              -1.556e+01  1.740e-07  2.273e+03 -0.007   0.9945   
SITE_TEXTC44.3 Skin of ear and unspecified parts of face  3.212e+00  2.482e+01  1.086e+00  2.958   0.0031 **
SITE_TEXTC44.4 Skin of scalp and neck                    -1.555e+01  1.769e-07  2.329e+03 -0.007   0.9947   
SITE_TEXTC44.5 Skin of trunk                              5.459e-02  1.056e+00  3.932e-01  0.139   0.8896   
SITE_TEXTC44.6 Skin of upper limb and shoulder            2.825e-01  1.326e+00  8.020e-01  0.352   0.7247   
SITE_TEXTC44.7 Skin of lower limb and hip                 5.495e-01  1.732e+00  5.859e-01  0.938   0.3483   
SITE_TEXTC44.8 Overlapping lesion of skin                 1.017e+00  2.766e+00  5.348e-01  1.902   0.0572 . 
SITE_TEXTC44.9 Skin, NOS                                  7.677e-01  2.155e+00  4.933e-01  1.556   0.1196   
SITE_TEXTC50.0 Nipple                                            NA         NA  0.000e+00     NA       NA   
SITE_TEXTC51.0 Labium majus                              -7.908e-01  4.535e-01  4.537e-01 -1.743   0.0813 . 
SITE_TEXTC51.1 Labium minus                              -6.349e-01  5.300e-01  6.908e-01 -0.919   0.3580   
SITE_TEXTC51.2 Clitoris                                  -1.555e+01  1.760e-07  2.937e+03 -0.005   0.9958   
SITE_TEXTC51.8 Overlapping lesion of vulva               -3.929e-01  6.751e-01  4.536e-01 -0.866   0.3864   
SITE_TEXTC51.9 Vulva, NOS                                -5.073e-01  6.021e-01  3.857e-01 -1.315   0.1884   
SITE_TEXTC52.9 Vagina, NOS                               -1.554e+01  1.787e-07  4.804e+03 -0.003   0.9974   
SITE_TEXTC60.0 Prepuce                                           NA         NA  0.000e+00     NA       NA   
SITE_TEXTC60.1 Glans penis                                       NA         NA  0.000e+00     NA       NA   
SITE_TEXTC60.2 Body of penis                             -1.554e+01  1.776e-07  3.997e+03 -0.004   0.9969   
SITE_TEXTC60.8 Overlapping lesion of penis               -1.556e+01  1.749e-07  2.565e+03 -0.006   0.9952   
SITE_TEXTC60.9 Penis                                             NA         NA  0.000e+00     NA       NA   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                                         exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC00.1 External Lip: Lower NOS                          NA         NA        NA        NA
SITE_TEXTC00.2  External Lip: NOS                               NA         NA        NA        NA
SITE_TEXTC00.3 Lip: Upper Mucosa                                NA         NA        NA        NA
SITE_TEXTC00.4 Lip: Lower Mucosa                                NA         NA        NA        NA
SITE_TEXTC00.5 Lip: Mucosa NOS                                  NA         NA        NA        NA
SITE_TEXTC00.6 Lip: Commissure                                  NA         NA        NA        NA
SITE_TEXTC00.8 Lip: Overlapping                                 NA         NA        NA        NA
SITE_TEXTC00.9 Lip, NOS                                         NA         NA        NA        NA
SITE_TEXTC44.0 Skin of lip, NOS                                 NA         NA        NA        NA
SITE_TEXTC44.1 Eyelid                                           NA         NA        NA        NA
SITE_TEXTC44.2 External ear                              1.740e-07  5.749e+06    0.0000       Inf
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 2.482e+01  4.029e-02    2.9546   208.468
SITE_TEXTC44.4 Skin of scalp and neck                    1.769e-07  5.652e+06    0.0000       Inf
SITE_TEXTC44.5 Skin of trunk                             1.056e+00  9.469e-01    0.4887     2.282
SITE_TEXTC44.6 Skin of upper limb and shoulder           1.326e+00  7.539e-01    0.2754     6.388
SITE_TEXTC44.7 Skin of lower limb and hip                1.732e+00  5.772e-01    0.5495     5.462
SITE_TEXTC44.8 Overlapping lesion of skin                2.766e+00  3.616e-01    0.9694     7.889
SITE_TEXTC44.9 Skin, NOS                                 2.155e+00  4.641e-01    0.8195     5.666
SITE_TEXTC50.0 Nipple                                           NA         NA        NA        NA
SITE_TEXTC51.0 Labium majus                              4.535e-01  2.205e+00    0.1864     1.103
SITE_TEXTC51.1 Labium minus                              5.300e-01  1.887e+00    0.1369     2.052
SITE_TEXTC51.2 Clitoris                                  1.760e-07  5.683e+06    0.0000       Inf
SITE_TEXTC51.8 Overlapping lesion of vulva               6.751e-01  1.481e+00    0.2775     1.642
SITE_TEXTC51.9 Vulva, NOS                                6.021e-01  1.661e+00    0.2828     1.282
SITE_TEXTC52.9 Vagina, NOS                               1.787e-07  5.596e+06    0.0000       Inf
SITE_TEXTC60.0 Prepuce                                          NA         NA        NA        NA
SITE_TEXTC60.1 Glans penis                                      NA         NA        NA        NA
SITE_TEXTC60.2 Body of penis                             1.776e-07  5.630e+06    0.0000       Inf
SITE_TEXTC60.8 Overlapping lesion of penis               1.749e-07  5.719e+06    0.0000       Inf
SITE_TEXTC60.9 Penis                                            NA         NA        NA        NA

Concordance= 0.593  (se = 0.015 )
Rsquare= 0.039   (max possible= 0.956 )
Likelihood ratio test= 53.58  on 16 df,   p=6.07e-06
Wald test            = 61.46  on 16 df,   p=2.971e-07
Score (logrank) test = 88.8  on 16 df,   p=4.164e-12
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 15 rows containing missing values (geom_errorbar).Removed 31 rows containing missing values (geom_text).Removed 31 rows containing missing values (geom_text).Removed 31 rows containing missing values (geom_text).Removed 31 rows containing missing values (geom_text).Removed 31 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 17.

Histology

#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)

Grade

uni_var(test_var = "GRADE_F", data_imp = data)
_________________________________________________
   
## GRADE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

                             n events median 0.95LCL 0.95UCL
GRADE_F=Gr I: Well Diff     38     10  131.9    70.3      NA
GRADE_F=Gr II: Mod Diff     30     15   67.1    51.4      NA
GRADE_F=Gr III: Poor Diff   36     23   29.3    21.6      NA
GRADE_F=NA/Unkown         1256    281  155.4   133.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

                GRADE_F=Gr I: Well Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37       0    1.000  0.0000        1.000         1.00
   24     34       2    0.945  0.0377        0.874         1.00
   36     30       1    0.916  0.0467        0.829         1.00
   48     20       0    0.916  0.0467        0.829         1.00
   60     15       3    0.771  0.0861        0.620         0.96
  120      4       3    0.591  0.1131        0.406         0.86

                GRADE_F=Gr II: Mod Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     25       3    0.893  0.0585        0.785        1.000
   24     18       5    0.709  0.0867        0.558        0.901
   36     15       0    0.709  0.0867        0.558        0.901
   48     14       1    0.662  0.0929        0.503        0.872
   60     10       3    0.516  0.1041        0.347        0.766
  120      1       3    0.199  0.1510        0.045        0.880

                GRADE_F=Gr III: Poor Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     28       4    0.884  0.0548       0.7826        0.998
   24     15      10    0.537  0.0920       0.3843        0.752
   36     10       4    0.384  0.0924       0.2396        0.615
   48      9       1    0.345  0.0907       0.2065        0.578
   60      8       1    0.307  0.0884       0.1747        0.540
  120      1       2    0.134  0.1041       0.0294        0.614

                GRADE_F=NA/Unkown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1094      41    0.965 0.00530        0.955        0.976
   24    965      35    0.933 0.00742        0.919        0.948
   36    809      35    0.897 0.00935        0.879        0.915
   48    681      32    0.859 0.01108        0.838        0.881
   60    559      37    0.809 0.01315        0.784        0.835
  120    119      87    0.607 0.02270        0.564        0.653




   
## Univariable Cox Proportional Hazard Model for:  GRADE_F
X matrix deemed to be singular; variable 3 4 5 6 7
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

  n= 1360, number of events= 329 

                                   coef exp(coef) se(coef)      z Pr(>|z|)    
GRADE_FGr II: Mod Diff           0.8652    2.3754   0.4085  2.118 0.034169 *  
GRADE_FGr III: Poor Diff         1.4655    4.3296   0.3794  3.863 0.000112 ***
GRADE_FGr IV: Undiff/Anaplastic      NA        NA   0.0000     NA       NA    
GRADE_F5                             NA        NA   0.0000     NA       NA    
GRADE_F6                             NA        NA   0.0000     NA       NA    
GRADE_F7                             NA        NA   0.0000     NA       NA    
GRADE_F8                             NA        NA   0.0000     NA       NA    
GRADE_FNA/Unkown                -0.1716    0.8423   0.3220 -0.533 0.594005    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                exp(coef) exp(-coef) lower .95 upper .95
GRADE_FGr II: Mod Diff             2.3754      0.421    1.0667     5.290
GRADE_FGr III: Poor Diff           4.3296      0.231    2.0583     9.107
GRADE_FGr IV: Undiff/Anaplastic        NA         NA        NA        NA
GRADE_F5                               NA         NA        NA        NA
GRADE_F6                               NA         NA        NA        NA
GRADE_F7                               NA         NA        NA        NA
GRADE_F8                               NA         NA        NA        NA
GRADE_FNA/Unkown                   0.8423      1.187    0.4481     1.583

Concordance= 0.553  (se = 0.008 )
Rsquare= 0.034   (max possible= 0.956 )
Likelihood ratio test= 47.18  on 3 df,   p=3.183e-10
Wald test            = 68.17  on 3 df,   p=1.055e-14
Score (logrank) test = 82.42  on 3 df,   p=0
Removed 6 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  GRADE_F

Clinical T Stage

#uni_var(test_var = "TNM_CLIN_T", data_imp = data)

Clinical N Stage

#uni_var(test_var = "TNM_CLIN_N", data_imp = data)

Clinical M Stage

#uni_var(test_var = "TNM_CLIN_M", data_imp = data)

Clinical Stage Group

uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                           n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=0    64     14  155.4  114.99      NA
TNM_CLIN_STAGE_GROUP=1   196     35     NA  103.66      NA
TNM_CLIN_STAGE_GROUP=1A  109     14     NA      NA      NA
TNM_CLIN_STAGE_GROUP=1B  119     19     NA      NA      NA
TNM_CLIN_STAGE_GROUP=2   184     51  121.8   97.25      NA
TNM_CLIN_STAGE_GROUP=3    15      4     NA  110.72      NA
TNM_CLIN_STAGE_GROUP=3B    1      1   20.9      NA      NA
TNM_CLIN_STAGE_GROUP=4     9      7   22.2   10.81      NA
TNM_CLIN_STAGE_GROUP=4A    2      0     NA      NA      NA
TNM_CLIN_STAGE_GROUP=4B    5      5   12.9    6.67      NA
TNM_CLIN_STAGE_GROUP=N_A   1      0     NA      NA      NA
TNM_CLIN_STAGE_GROUP=99  655    179  133.4  126.09      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                TNM_CLIN_STAGE_GROUP=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     57       2    0.966  0.0238        0.920        1.000
   24     49       2    0.930  0.0336        0.867        0.999
   36     48       1    0.911  0.0379        0.840        0.989
   48     39       0    0.911  0.0379        0.840        0.989
   60     31       3    0.835  0.0546        0.735        0.949
  120      7       5    0.612  0.1067        0.435        0.861

                TNM_CLIN_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    169       7    0.962  0.0140        0.935        0.990
   24    151       4    0.939  0.0180        0.904        0.974
   36    126       4    0.911  0.0220        0.869        0.956
   48    105       4    0.882  0.0258        0.832        0.934
   60     85       5    0.836  0.0317        0.776        0.900
  120     11      11    0.610  0.0665        0.492        0.755

                TNM_CLIN_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     93       2    0.979  0.0144        0.951        1.000
   24     82       4    0.937  0.0251        0.889        0.987
   36     69       2    0.912  0.0297        0.856        0.972
   48     53       0    0.912  0.0297        0.856        0.972
   60     37       4    0.836  0.0457        0.751        0.930
  120      9       1    0.812  0.0503        0.719        0.917

                TNM_CLIN_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    105       3    0.974  0.0146        0.946        1.000
   24     92       5    0.926  0.0253        0.877        0.977
   36     66       4    0.879  0.0332        0.816        0.947
   48     54       1    0.864  0.0359        0.797        0.937
   60     42       1    0.847  0.0391        0.774        0.927
  120      3       5    0.703  0.0691        0.580        0.852

                TNM_CLIN_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    163       4    0.977  0.0115        0.954        1.000
   24    139       8    0.926  0.0206        0.887        0.967
   36    115       6    0.883  0.0260        0.834        0.936
   48     96       5    0.841  0.0309        0.782        0.904
   60     82       8    0.768  0.0375        0.698        0.845
  120     13      16    0.538  0.0576        0.436        0.664

                TNM_CLIN_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13       2    0.867  0.0878        0.711            1
   24     13       0    0.867  0.0878        0.711            1
   36     12       1    0.800  0.1033        0.621            1
   48     12       0    0.800  0.1033        0.621            1
   60     12       0    0.800  0.1033        0.621            1
  120      1       1    0.533  0.2284        0.230            1

                TNM_CLIN_STAGE_GROUP=3B 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
          12            1            0            1            0            1            1 

                TNM_CLIN_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       3    0.667   0.157       0.4200        1.000
   24      3       3    0.333   0.157       0.1323        0.840
   36      2       1    0.222   0.139       0.0655        0.754
   48      1       0    0.222   0.139       0.0655        0.754
   60      1       0    0.222   0.139       0.0655        0.754

                TNM_CLIN_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1

                TNM_CLIN_STAGE_GROUP=4B 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
      12.000        3.000        2.000        0.600        0.219        0.293        1.000 

                TNM_CLIN_STAGE_GROUP=N_A 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_CLIN_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    572      23    0.963 0.00749        0.949        0.978
   24    502      22    0.925 0.01084        0.904        0.946
   36    425      21    0.883 0.01363        0.857        0.910
   48    364      24    0.831 0.01649        0.799        0.864
   60    302      23    0.775 0.01904        0.739        0.813
  120     81      56    0.571 0.02868        0.518        0.630




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_STAGE_GROUP
Loglik converged before variable  14,17 ; beta may be infinite. X matrix deemed to be singular; variable 4 6 7 8 10 12 16
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

  n= 1360, number of events= 329 

                              coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_CLIN_STAGE_GROUP1   -1.658e-02  9.836e-01  3.165e-01 -0.052  0.95823    
TNM_CLIN_STAGE_GROUP1A  -2.947e-01  7.447e-01  3.781e-01 -0.779  0.43573    
TNM_CLIN_STAGE_GROUP1B   6.078e-02  1.063e+00  3.531e-01  0.172  0.86333    
TNM_CLIN_STAGE_GROUP1C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP2    3.647e-01  1.440e+00  3.018e-01  1.208  0.22691    
TNM_CLIN_STAGE_GROUP2A          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP2B          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP2C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP3   -5.652e-02  9.450e-01  5.674e-01 -0.100  0.92064    
TNM_CLIN_STAGE_GROUP3A          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP3B   2.925e+00  1.863e+01  1.040e+00  2.812  0.00492 ** 
TNM_CLIN_STAGE_GROUP3C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP4    2.323e+00  1.020e+01  4.653e-01  4.992 5.99e-07 ***
TNM_CLIN_STAGE_GROUP4A  -1.244e+01  3.959e-06  1.258e+03 -0.010  0.99211    
TNM_CLIN_STAGE_GROUP4B   3.690e+00  4.003e+01  5.367e-01  6.875 6.19e-12 ***
TNM_CLIN_STAGE_GROUP4C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUPN_A -1.243e+01  4.010e-06  7.660e+03 -0.002  0.99871    
TNM_CLIN_STAGE_GROUP99   2.520e-01  1.287e+00  2.776e-01  0.908  0.36398    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1   9.836e-01  1.017e+00    0.5289     1.829
TNM_CLIN_STAGE_GROUP1A  7.447e-01  1.343e+00    0.3549     1.563
TNM_CLIN_STAGE_GROUP1B  1.063e+00  9.410e-01    0.5319     2.123
TNM_CLIN_STAGE_GROUP1C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2   1.440e+00  6.944e-01    0.7970     2.602
TNM_CLIN_STAGE_GROUP2A         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2B         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP3   9.450e-01  1.058e+00    0.3108     2.873
TNM_CLIN_STAGE_GROUP3A         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP3B  1.863e+01  5.366e-02    2.4263   143.117
TNM_CLIN_STAGE_GROUP3C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP4   1.020e+01  9.802e-02    4.0985    25.396
TNM_CLIN_STAGE_GROUP4A  3.959e-06  2.526e+05    0.0000       Inf
TNM_CLIN_STAGE_GROUP4B  4.003e+01  2.498e-02   13.9819   114.594
TNM_CLIN_STAGE_GROUP4C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUPN_A 4.010e-06  2.494e+05    0.0000       Inf
TNM_CLIN_STAGE_GROUP99  1.287e+00  7.773e-01    0.7467     2.217

Concordance= 0.56  (se = 0.017 )
Rsquare= 0.039   (max possible= 0.956 )
Likelihood ratio test= 54.76  on 11 df,   p=8.583e-08
Wald test            = 97.79  on 11 df,   p=4.441e-16
Score (logrank) test = 201.6  on 11 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 8 rows containing missing values (geom_errorbar).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 12.

Pathologic T Stage

#uni_var(test_var = "TNM_PATH_T", data_imp = data)

Pathologic N Stage

#uni_var(test_var = "TNM_PATH_N", data_imp = data)

Pathologic M Stage

#uni_var(test_var = "TNM_PATH_M", data_imp = data)

Pathologic Stage Group

uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

   79 observations deleted due to missingness 
                           n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=0    58     12     NA  128.46      NA
TNM_PATH_STAGE_GROUP=1   107     18     NA  120.94      NA
TNM_PATH_STAGE_GROUP=1A  104     18  155.4  114.99      NA
TNM_PATH_STAGE_GROUP=1B   92     13     NA      NA      NA
TNM_PATH_STAGE_GROUP=2   120     24     NA  130.53      NA
TNM_PATH_STAGE_GROUP=3    26     14  110.7   49.74      NA
TNM_PATH_STAGE_GROUP=3A    2      2   20.6    2.04      NA
TNM_PATH_STAGE_GROUP=3C    5      4   14.6   11.17      NA
TNM_PATH_STAGE_GROUP=4     4      2   23.6    5.06      NA
TNM_PATH_STAGE_GROUP=4A    5      3   16.9    4.34      NA
TNM_PATH_STAGE_GROUP=4B    1      1   13.5      NA      NA
TNM_PATH_STAGE_GROUP=N_A   1      0     NA      NA      NA
TNM_PATH_STAGE_GROUP=99  756    204  133.1  115.94      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

79 observations deleted due to missingness 
                TNM_PATH_STAGE_GROUP=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     52       1    0.981  0.0190        0.944        1.000
   24     46       1    0.961  0.0269        0.910        1.000
   36     43       1    0.939  0.0340        0.875        1.000
   48     39       0    0.939  0.0340        0.875        1.000
   60     33       2    0.888  0.0477        0.800        0.987
  120     10       6    0.694  0.0806        0.553        0.872

                TNM_PATH_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     92       1    0.990 0.00985        0.971        1.000
   24     84       1    0.979 0.01503        0.950        1.000
   36     76       1    0.966 0.01948        0.928        1.000
   48     66       2    0.940 0.02613        0.890        0.993
   60     54       4    0.879 0.03833        0.807        0.958
  120     11       7    0.668 0.08129        0.526        0.848

                TNM_PATH_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     97       1    0.990  0.0100        0.970        1.000
   24     87       3    0.958  0.0206        0.918        0.999
   36     77       3    0.923  0.0280        0.870        0.980
   48     58       2    0.896  0.0331        0.834        0.963
   60     45       3    0.844  0.0426        0.765        0.932
  120      9       5    0.652  0.0895        0.498        0.853

                TNM_PATH_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     78       2    0.977  0.0161        0.946        1.000
   24     69       1    0.963  0.0208        0.924        1.000
   36     52       2    0.931  0.0302        0.874        0.992
   48     41       3    0.870  0.0444        0.787        0.961
   60     34       2    0.823  0.0530        0.725        0.934
  120      2       3    0.723  0.0731        0.593        0.881

                TNM_PATH_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    107       1    0.991 0.00897        0.974        1.000
   24     93       5    0.942 0.02315        0.897        0.988
   36     83       2    0.920 0.02704        0.869        0.975
   48     72       3    0.884 0.03328        0.821        0.951
   60     62       2    0.858 0.03706        0.788        0.933
  120     19       8    0.720 0.05499        0.620        0.836

                TNM_PATH_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       3    0.885  0.0627        0.770        1.000
   24     21       2    0.808  0.0773        0.670        0.974
   36     21       0    0.808  0.0773        0.670        0.974
   48     18       3    0.692  0.0905        0.536        0.895
   60     17       1    0.654  0.0933        0.494        0.865
  120      2       4    0.294  0.1448        0.112        0.772

                TNM_PATH_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       1      0.5   0.354        0.125            1
   24      1       0      0.5   0.354        0.125            1
   36      1       0      0.5   0.354        0.125            1

                TNM_PATH_STAGE_GROUP=3C 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
      12.000        3.000        2.000        0.600        0.219        0.293        1.000 

                TNM_PATH_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1     0.75   0.217        0.426            1
   24      2       1     0.50   0.250        0.188            1

                TNM_PATH_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       2      0.6   0.219        0.293            1
   24      2       1      0.4   0.219        0.137            1
   36      2       0      0.4   0.219        0.137            1
   48      1       0      0.4   0.219        0.137            1
   60      1       0      0.4   0.219        0.137            1

                TNM_PATH_STAGE_GROUP=4B 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
          12            1            0            1            0            1            1 

                TNM_PATH_STAGE_GROUP=N_A 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_PATH_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    659      30    0.958 0.00748        0.944        0.973
   24    572      29    0.915 0.01066        0.894        0.936
   36    475      29    0.865 0.01353        0.839        0.892
   48    402      19    0.828 0.01531        0.799        0.859
   60    330      29    0.765 0.01809        0.731        0.802
  120     72      60    0.552 0.02880        0.499        0.612




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_STAGE_GROUP
Loglik converged before variable  17 ; beta may be infinite. X matrix deemed to be singular; variable 4 6 7 8 11 16
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

  n= 1281, number of events= 315 
   (79 observations deleted due to missingness)

                              coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_PATH_STAGE_GROUP1    4.124e-02  1.042e+00  3.731e-01  0.111 0.911974    
TNM_PATH_STAGE_GROUP1A   6.457e-02  1.067e+00  3.732e-01  0.173 0.862617    
TNM_PATH_STAGE_GROUP1B   1.515e-01  1.164e+00  4.016e-01  0.377 0.706068    
TNM_PATH_STAGE_GROUP1C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP2    5.139e-02  1.053e+00  3.536e-01  0.145 0.884434    
TNM_PATH_STAGE_GROUP2A          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP2B          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP2C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP3    9.321e-01  2.540e+00  3.937e-01  2.368 0.017900 *  
TNM_PATH_STAGE_GROUP3A   3.075e+00  2.165e+01  7.676e-01  4.006 6.18e-05 ***
TNM_PATH_STAGE_GROUP3B          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP3C   3.388e+00  2.961e+01  5.896e-01  5.746 9.12e-09 ***
TNM_PATH_STAGE_GROUP4    2.273e+00  9.710e+00  7.682e-01  2.959 0.003086 ** 
TNM_PATH_STAGE_GROUP4A   1.857e+00  6.403e+00  6.462e-01  2.874 0.004058 ** 
TNM_PATH_STAGE_GROUP4B   3.622e+00  3.743e+01  1.050e+00  3.450 0.000561 ***
TNM_PATH_STAGE_GROUP4C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUPN_A -8.254e+00  2.602e-04  1.082e+03 -0.008 0.993915    
TNM_PATH_STAGE_GROUP99   5.196e-01  1.681e+00  2.973e-01  1.748 0.080538 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1   1.042e+00  9.596e-01    0.5016     2.165
TNM_PATH_STAGE_GROUP1A  1.067e+00  9.375e-01    0.5134     2.217
TNM_PATH_STAGE_GROUP1B  1.164e+00  8.595e-01    0.5296     2.556
TNM_PATH_STAGE_GROUP1C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2   1.053e+00  9.499e-01    0.5264     2.105
TNM_PATH_STAGE_GROUP2A         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2B         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3   2.540e+00  3.937e-01    1.1741     5.494
TNM_PATH_STAGE_GROUP3A  2.165e+01  4.619e-02    4.8088    97.458
TNM_PATH_STAGE_GROUP3B         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3C  2.961e+01  3.377e-02    9.3239    94.054
TNM_PATH_STAGE_GROUP4   9.710e+00  1.030e-01    2.1544    43.765
TNM_PATH_STAGE_GROUP4A  6.403e+00  1.562e-01    1.8046    22.719
TNM_PATH_STAGE_GROUP4B  3.743e+01  2.672e-02    4.7798   293.077
TNM_PATH_STAGE_GROUP4C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUPN_A 2.602e-04  3.843e+03    0.0000       Inf
TNM_PATH_STAGE_GROUP99  1.681e+00  5.948e-01    0.9388     3.011

Concordance= 0.596  (se = 0.016 )
Rsquare= 0.04   (max possible= 0.957 )
Likelihood ratio test= 52.84  on 12 df,   p=4.392e-07
Wald test            = 83.27  on 12 df,   p=9.798e-13
Score (logrank) test = 142.6  on 12 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 7 rows containing missing values (geom_errorbar).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 13.

Margins

uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
   
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                            n events median 0.95LCL 0.95UCL
MARGINS=No Residual       601    124     NA   128.5      NA
MARGINS=Residual, NOS     164     38  131.9   121.8      NA
MARGINS=Microscopic Resid 351     71  155.4   133.4      NA
MARGINS=Macroscopic Resid  17      7   71.5    49.7      NA
MARGINS=Not evaluable      22      3     NA    92.3      NA
MARGINS=No surg           161     75   63.2    53.8    75.6
MARGINS=Unknown            44     11     NA    72.4      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                MARGINS=No Residual 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    524      13    0.977 0.00638        0.964        0.989
   24    472      14    0.950 0.00945        0.931        0.968
   36    398      16    0.915 0.01246        0.891        0.940
   48    344      14    0.881 0.01503        0.852        0.910
   60    285      21    0.823 0.01858        0.787        0.860
  120     62      41    0.619 0.03318        0.557        0.687

                MARGINS=Residual, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    148       4    0.975  0.0124        0.951        0.999
   24    125       9    0.912  0.0233        0.868        0.959
   36    107       4    0.881  0.0272        0.829        0.936
   48     88       4    0.846  0.0313        0.787        0.910
   60     70       6    0.784  0.0379        0.713        0.862
  120     13       8    0.633  0.0600        0.526        0.762

                MARGINS=Microscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    313      11    0.967 0.00972        0.948        0.986
   24    279       7    0.945 0.01273        0.920        0.970
   36    238       9    0.912 0.01623        0.881        0.945
   48    200       8    0.880 0.01931        0.843        0.918
   60    174       7    0.848 0.02207        0.806        0.892
  120     38      24    0.659 0.04124        0.583        0.745

                MARGINS=Macroscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       0    1.000  0.0000        1.000        1.000
   24     12       2    0.857  0.0935        0.692        1.000
   36      9       1    0.771  0.1170        0.573        1.000
   48      9       0    0.771  0.1170        0.573        1.000
   60      5       2    0.579  0.1471        0.351        0.952
  120      2       1    0.463  0.1567        0.238        0.899

                MARGINS=Not evaluable 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17       0    1.000  0.0000        1.000            1
   24     16       0    1.000  0.0000        1.000            1
   36     13       0    1.000  0.0000        1.000            1
   48     10       1    0.923  0.0739        0.789            1
   60      8       0    0.923  0.0739        0.789            1
  120      2       2    0.659  0.1662        0.402            1

                MARGINS=No surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    128      19    0.876  0.0267        0.825        0.930
   24     92      19    0.735  0.0372        0.666        0.812
   36     68       9    0.654  0.0418        0.577        0.742
   48     52       5    0.601  0.0447        0.520        0.695
   60     32       6    0.516  0.0502        0.427        0.625
  120      4      15    0.210  0.0605        0.120        0.369

                MARGINS=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     40       1    0.976  0.0235        0.931        1.000
   24     36       1    0.951  0.0342        0.886        1.000
   36     31       1    0.923  0.0431        0.842        1.000
   48     21       2    0.863  0.0573        0.758        0.983
   60     18       2    0.779  0.0767        0.642        0.945
  120      4       4    0.567  0.1076        0.391        0.823




   
## Univariable Cox Proportional Hazard Model for:  MARGINS

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

  n= 1360, number of events= 329 

                             coef exp(coef) se(coef)      z Pr(>|z|)    
MARGINSResidual, NOS      0.21302   1.23740  0.18558  1.148   0.2510    
MARGINSMicroscopic Resid -0.05557   0.94595  0.14886 -0.373   0.7089    
MARGINSMacroscopic Resid  0.88777   2.42971  0.38887  2.283   0.0224 *  
MARGINSNot evaluable     -0.26976   0.76356  0.58437 -0.462   0.6443    
MARGINSNo surg            1.38452   3.99292  0.14815  9.345   <2e-16 ***
MARGINSUnknown            0.26715   1.30624  0.31484  0.849   0.3961    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                         exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS        1.2374     0.8081    0.8601     1.780
MARGINSMicroscopic Resid    0.9459     1.0571    0.7066     1.266
MARGINSMacroscopic Resid    2.4297     0.4116    1.1338     5.207
MARGINSNot evaluable        0.7636     1.3097    0.2429     2.400
MARGINSNo surg              3.9929     0.2504    2.9866     5.338
MARGINSUnknown              1.3062     0.7656    0.7047     2.421

Concordance= 0.617  (se = 0.017 )
Rsquare= 0.061   (max possible= 0.956 )
Likelihood ratio test= 85.81  on 6 df,   p=2.22e-16
Wald test            = 107.9  on 6 df,   p=0
Score (logrank) test = 124.8  on 6 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  MARGINS

Margins Yes/No

#uni_var(test_var = "MARGINS_YN", data_imp = data)

30 Day Readmission

uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
   
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                                              n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 1292    305 141.77   128.2      NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same     36     15 110.72    59.9      NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same       15      5  90.28    66.2      NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same          1      1   1.38      NA      NA
READM_HOSP_30_DAYS_F=9                       16      3     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1126      44    0.964 0.00533        0.954        0.975
   24    979      47    0.922 0.00789        0.907        0.937
   36    821      37    0.884 0.00969        0.865        0.903
   48    684      33    0.846 0.01131        0.824        0.869
   60    558      40    0.793 0.01335        0.768        0.820
  120    118      88    0.591 0.02269        0.548        0.637

                READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       3    0.915  0.0470        0.827        1.000
   24     27       3    0.823  0.0656        0.704        0.963
   36     24       1    0.792  0.0703        0.665        0.942
   48     21       1    0.756  0.0758        0.621        0.920
   60     17       3    0.642  0.0883        0.491        0.841
  120      5       4    0.441  0.1073        0.273        0.710

                READM_HOSP_30_DAYS_F=Plan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       0    1.000  0.0000        1.000            1
   24     13       1    0.929  0.0688        0.803            1
   36      7       2    0.774  0.1152        0.578            1
   48      7       0    0.774  0.1152        0.578            1
   60      6       0    0.774  0.1152        0.578            1

                READM_HOSP_30_DAYS_F=PlanUnplan_Same 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                READM_HOSP_30_DAYS_F=9 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       0    1.000  0.0000        1.000            1
   24     13       1    0.929  0.0688        0.803            1
   36     12       0    0.929  0.0688        0.803            1
   48     12       0    0.929  0.0688        0.803            1
   60     11       1    0.851  0.0973        0.680            1
  120      2       1    0.766  0.1191        0.565            1




   
## Univariable Cox Proportional Hazard Model for:  READM_HOSP_30_DAYS_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

  n= 1360, number of events= 329 

                                            coef exp(coef) se(coef)      z Pr(>|z|)    
READM_HOSP_30_DAYS_FUnplan_Readmit_Same   0.4686    1.5977   0.2646  1.771   0.0766 .  
READM_HOSP_30_DAYS_FPlan_Readmit_Same     0.4202    1.5223   0.4511  0.931   0.3516    
READM_HOSP_30_DAYS_FPlanUnplan_Same       5.2765  195.6763   1.0691  4.935 8.01e-07 ***
READM_HOSP_30_DAYS_F9                    -0.5392    0.5832   0.5804 -0.929   0.3529    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                        exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same    1.5977    0.62589    0.9512     2.684
READM_HOSP_30_DAYS_FPlan_Readmit_Same      1.5223    0.65690    0.6288     3.686
READM_HOSP_30_DAYS_FPlanUnplan_Same      195.6763    0.00511   24.0705  1590.712
READM_HOSP_30_DAYS_F9                      0.5832    1.71469    0.1870     1.819

Concordance= 0.518  (se = 0.007 )
Rsquare= 0.009   (max possible= 0.956 )
Likelihood ratio test= 12.97  on 4 df,   p=0.01143
Wald test            = 29.02  on 4 df,   p=7.732e-06
Score (logrank) test = 171.6  on 4 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  READM_HOSP_30_DAYS_F

Radiation Type

uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
   
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                                              n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None                   1268    290  149.6   128.5      NA
RX_SUMM_RADIATION_F=Beam Radiation           73     35   61.9    40.6      NA
RX_SUMM_RADIATION_F=Radioactive Implants      1      0     NA      NA      NA
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes    1      0     NA      NA      NA
RX_SUMM_RADIATION_F=Unknown                  17      4     NA   131.9      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                RX_SUMM_RADIATION_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1104      39    0.968 0.00512        0.958        0.978
   24    973      40    0.931 0.00752        0.916        0.946
   36    817      37    0.893 0.00947        0.874        0.912
   48    685      31    0.857 0.01110        0.835        0.879
   60    560      41    0.802 0.01330        0.776        0.828
  120    115      88    0.595 0.02306        0.551        0.642

                RX_SUMM_RADIATION_F=Beam Radiation 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     64       8    0.890  0.0366        0.822        0.965
   24     44      12    0.711  0.0548        0.611        0.827
   36     33       3    0.658  0.0587        0.553        0.784
   48     25       3    0.595  0.0634        0.483        0.733
   60     19       3    0.515  0.0697        0.395        0.671
  120      5       5    0.354  0.0798        0.228        0.551

                RX_SUMM_RADIATION_F=Radioactive Implants 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
          12            1            0            1            0            1            1 

                RX_SUMM_RADIATION_F=Beam + Imp or Isotopes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                RX_SUMM_RADIATION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       1    0.933  0.0644        0.815            1
   24     14       0    0.933  0.0644        0.815            1
   36     13       0    0.933  0.0644        0.815            1
   48     13       0    0.933  0.0644        0.815            1
   60     12       0    0.933  0.0644        0.815            1
  120      5       2    0.770  0.1179        0.570            1




   
## Univariable Cox Proportional Hazard Model for:  RX_SUMM_RADIATION_F
Loglik converged before variable  2,4 ; beta may be infinite. X matrix deemed to be singular; variable 3 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

  n= 1360, number of events= 329 

                                                coef  exp(coef)   se(coef)      z Pr(>|z|)    
RX_SUMM_RADIATION_FBeam Radiation          1.037e+00  2.819e+00  1.794e-01  5.779 7.52e-09 ***
RX_SUMM_RADIATION_FRadioactive Implants   -1.306e+01  2.122e-06  2.871e+03 -0.005    0.996    
RX_SUMM_RADIATION_FRadioisotopes                  NA         NA  0.000e+00     NA       NA    
RX_SUMM_RADIATION_FBeam + Imp or Isotopes -1.305e+01  2.140e-06  1.133e+03 -0.012    0.991    
RX_SUMM_RADIATION_FRadiation, NOS                 NA         NA  0.000e+00     NA       NA    
RX_SUMM_RADIATION_FUnknown                -4.143e-01  6.608e-01  5.046e-01 -0.821    0.412    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                          exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation         2.819e+00  3.547e-01    1.9837     4.007
RX_SUMM_RADIATION_FRadioactive Implants   2.122e-06  4.712e+05    0.0000       Inf
RX_SUMM_RADIATION_FRadioisotopes                 NA         NA        NA        NA
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 2.140e-06  4.673e+05    0.0000       Inf
RX_SUMM_RADIATION_FRadiation, NOS                NA         NA        NA        NA
RX_SUMM_RADIATION_FUnknown                6.608e-01  1.513e+00    0.2458     1.777

Concordance= 0.548  (se = 0.007 )
Rsquare= 0.02   (max possible= 0.956 )
Likelihood ratio test= 27.64  on 4 df,   p=1.478e-05
Wald test            = 34.45  on 4 df,   p=6.024e-07
Score (logrank) test = 38.17  on 4 df,   p=1.034e-07
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 3 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_SUMM_RADIATION_F

Lymphovascular Invasion

uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
_________________________________________________
   
## LYMPH_VASCULAR_INVASION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

   622 observations deleted due to missingness 
                                              n events median 0.95LCL 0.95UCL
LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv 271     43     NA    80.1      NA
LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv  28     15   27.8    20.9      NA
LYMPH_VASCULAR_INVASION_F=N_A                 1      0     NA      NA      NA
LYMPH_VASCULAR_INVASION_F=Unknown           438     61     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

622 observations deleted due to missingness 
                LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    234       8    0.968  0.0111        0.947        0.990
   24    196      10    0.924  0.0172        0.891        0.959
   36    147       7    0.887  0.0215        0.846        0.931
   48    100       4    0.859  0.0252        0.811        0.910
   60     62       8    0.776  0.0361        0.708        0.850

                LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     22       5    0.816  0.0744        0.682        0.976
   24     11       7    0.515  0.1030        0.348        0.762
   36      7       1    0.458  0.1062        0.290        0.721
   48      3       2    0.294  0.1180        0.134        0.646
   60      3       0    0.294  0.1180        0.134        0.646

                LYMPH_VASCULAR_INVASION_F=N_A 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                LYMPH_VASCULAR_INVASION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    372      10    0.975 0.00772        0.960        0.991
   24    303      15    0.933 0.01301        0.908        0.959
   36    216      14    0.884 0.01775        0.850        0.920
   48    165       3    0.871 0.01913        0.834        0.909
   60    108       9    0.816 0.02524        0.768        0.867




   
## Univariable Cox Proportional Hazard Model for:  LYMPH_VASCULAR_INVASION_F
Loglik converged before variable  2 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

  n= 738, number of events= 119 
   (622 observations deleted due to missingness)

                                                 coef  exp(coef)   se(coef)      z Pr(>|z|)    
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv  1.684e+00  5.389e+00  3.019e-01  5.579 2.42e-08 ***
LYMPH_VASCULAR_INVASION_FN_A               -1.057e+01  2.557e-05  1.655e+03 -0.006    0.995    
LYMPH_VASCULAR_INVASION_FUnknown           -1.111e-01  8.948e-01  1.992e-01 -0.558    0.577    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                           exp(coef) exp(-coef) lower .95 upper .95
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv 5.389e+00  1.856e-01    2.9819     9.739
LYMPH_VASCULAR_INVASION_FN_A               2.557e-05  3.911e+04    0.0000       Inf
LYMPH_VASCULAR_INVASION_FUnknown           8.948e-01  1.118e+00    0.6056     1.322

Concordance= 0.575  (se = 0.025 )
Rsquare= 0.035   (max possible= 0.851 )
Likelihood ratio test= 26.52  on 3 df,   p=7.429e-06
Wald test            = 39.82  on 3 df,   p=1.166e-08
Score (logrank) test = 51.01  on 3 df,   p=4.857e-11
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 4 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  LYMPH_VASCULAR_INVASION_F

Endoscopic/Robotic

uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
   
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

   622 observations deleted due to missingness 
                                            n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg          122     38   61.9    53.5      NA
RX_HOSP_SURG_APPR_2010_F=Robot_Assist       2      0     NA      NA      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap          18      1     NA      NA      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open   2      0     NA      NA      NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown     594     80     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

622 observations deleted due to missingness 
                RX_HOSP_SURG_APPR_2010_F=No_Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     94       9    0.920  0.0257        0.871        0.972
   24     62      14    0.766  0.0434        0.686        0.856
   36     39       7    0.667  0.0516        0.574        0.777
   48     24       3    0.607  0.0576        0.504        0.731
   60      9       2    0.527  0.0728        0.402        0.691

                RX_HOSP_SURG_APPR_2010_F=Robot_Assist 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15       0      1.0   0.000        1.000            1
   24     15       0      1.0   0.000        1.000            1
   36     12       0      1.0   0.000        1.000            1
   48      7       0      1.0   0.000        1.000            1
   60      4       1      0.8   0.179        0.516            1

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      2       0        1       0            1            1

                RX_HOSP_SURG_APPR_2010_F=Open_Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    515      14    0.975 0.00672        0.961        0.988
   24    429      18    0.938 0.01066        0.917        0.959
   36    317      15    0.901 0.01388        0.874        0.929
   48    235       6    0.881 0.01585        0.850        0.913
   60    158      14    0.821 0.02141        0.780        0.864




   
## Univariable Cox Proportional Hazard Model for:  RX_HOSP_SURG_APPR_2010_F
Loglik converged before variable  1,4 ; beta may be infinite. X matrix deemed to be singular; variable 2 6
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

  n= 738, number of events= 119 
   (622 observations deleted due to missingness)

                                               coef  exp(coef)   se(coef)      z Pr(>|z|)    
RX_HOSP_SURG_APPR_2010_FRobot_Assist     -1.648e+01  6.934e-08  4.595e+03 -0.004   0.9971    
RX_HOSP_SURG_APPR_2010_FRobot_to_Open            NA         NA  0.000e+00     NA       NA    
RX_HOSP_SURG_APPR_2010_FEndo_Lap         -2.262e+00  1.041e-01  1.014e+00 -2.231   0.0257 *  
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open -1.647e+01  7.063e-08  2.325e+03 -0.007   0.9943    
RX_HOSP_SURG_APPR_2010_FOpen_Unknown     -1.316e+00  2.682e-01  2.007e-01 -6.557  5.5e-11 ***
RX_HOSP_SURG_APPR_2010_FUnknown                  NA         NA  0.000e+00     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                         exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist     6.934e-08  1.442e+07   0.00000       Inf
RX_HOSP_SURG_APPR_2010_FRobot_to_Open           NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap         1.041e-01  9.604e+00   0.01427    0.7596
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 7.063e-08  1.416e+07   0.00000       Inf
RX_HOSP_SURG_APPR_2010_FOpen_Unknown     2.682e-01  3.728e+00   0.18101    0.3975
RX_HOSP_SURG_APPR_2010_FUnknown                 NA         NA        NA        NA

Concordance= 0.628  (se = 0.019 )
Rsquare= 0.053   (max possible= 0.851 )
Likelihood ratio test= 40.19  on 4 df,   p=3.947e-08
Wald test            = 44.83  on 4 df,   p=4.322e-09
Score (logrank) test = 53.43  on 4 df,   p=6.942e-11
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 3 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_HOSP_SURG_APPR_2010_F

Surgery Radiation Sequence

uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
   
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                              n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone    1158    241  155.4   141.8      NA
SURG_RAD_SEQ=Surg then Rad   23      9  125.6    39.2      NA
SURG_RAD_SEQ=Rad Alone       52     26   55.2    40.0      NA
SURG_RAD_SEQ=No Treatment   105     47   68.5    48.6    81.8
SURG_RAD_SEQ=Other           22      6  131.9    82.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                SURG_RAD_SEQ=Surg Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1018      28    0.974 0.00477        0.965        0.984
   24    911      27    0.948 0.00689        0.934        0.961
   36    771      31    0.913 0.00902        0.896        0.931
   48    649      28    0.878 0.01087        0.857        0.899
   60    538      38    0.823 0.01333        0.797        0.850
  120    112      77    0.624 0.02388        0.579        0.673

                SURG_RAD_SEQ=Surg then Rad 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       0    1.000   0.000        1.000        1.000
   24     14       6    0.710   0.100        0.538        0.936
   36     11       0    0.710   0.100        0.538        0.936
   48     10       1    0.645   0.110        0.462        0.901
   60     10       0    0.645   0.110        0.462        0.901
  120      4       1    0.581   0.116        0.392        0.860

                SURG_RAD_SEQ=Rad Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     43       8    0.846  0.0500       0.7536        0.950
   24     31       6    0.722  0.0635       0.6077        0.858
   36     23       3    0.646  0.0703       0.5221        0.800
   48     16       2    0.585  0.0759       0.4533        0.754
   60     10       3    0.452  0.0894       0.3072        0.666
  120      1       4    0.211  0.1053       0.0795        0.561

                SURG_RAD_SEQ=No Treatment 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     82      11    0.889  0.0316        0.829        0.953
   24     58      13    0.734  0.0471        0.647        0.833
   36     42       6    0.648  0.0532        0.552        0.761
   48     34       2    0.613  0.0557        0.513        0.733
   60     20       3    0.546  0.0621        0.436        0.682
  120      3      10    0.214  0.0755        0.107        0.427

                SURG_RAD_SEQ=Other 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       1    0.947  0.0512        0.852        1.000
   24     18       0    0.947  0.0512        0.852        1.000
   36     17       0    0.947  0.0512        0.852        1.000
   48     15       1    0.888  0.0748        0.753        1.000
   60     14       0    0.888  0.0748        0.753        1.000
  120      5       3    0.680  0.1203        0.481        0.962




   
## Univariable Cox Proportional Hazard Model for:  SURG_RAD_SEQ
X matrix deemed to be singular; variable 5 6
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

  n= 1360, number of events= 329 

                                          coef exp(coef) se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad              0.62470   1.86768  0.33984  1.838    0.066 .  
SURG_RAD_SEQRad Alone                  1.41191   4.10379  0.20785  6.793  1.1e-11 ***
SURG_RAD_SEQNo Treatment               1.33626   3.80477  0.16093  8.303  < 2e-16 ***
SURG_RAD_SEQOther                     -0.02054   0.97967  0.41436 -0.050    0.960    
SURG_RAD_SEQRad before and after Surg       NA        NA  0.00000     NA       NA    
SURG_RAD_SEQRad then Surg                   NA        NA  0.00000     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                1.8677     0.5354    0.9595     3.636
SURG_RAD_SEQRad Alone                    4.1038     0.2437    2.7307     6.167
SURG_RAD_SEQNo Treatment                 3.8048     0.2628    2.7755     5.216
SURG_RAD_SEQOther                        0.9797     1.0207    0.4349     2.207
SURG_RAD_SEQRad before and after Surg        NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                    NA         NA        NA        NA

Concordance= 0.602  (se = 0.01 )
Rsquare= 0.057   (max possible= 0.956 )
Likelihood ratio test= 80.25  on 4 df,   p=1.11e-16
Wald test            = 102.8  on 4 df,   p=0
Score (logrank) test = 118.9  on 4 df,   p=0
Removed 3 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURG_RAD_SEQ

Surgery Yes/No

uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
   
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                  n events median 0.95LCL 0.95UCL
SURGERY_YN=No   156     72   61.9    53.8    76.1
SURGERY_YN=Ukn    8      3   70.2    40.4      NA
SURGERY_YN=Yes 1196    254  155.4   141.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                SURGERY_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    124      19    0.873  0.0273        0.821        0.928
   24     89      18    0.735  0.0378        0.664        0.813
   36     65       9    0.651  0.0426        0.573        0.740
   48     50       4    0.606  0.0451        0.524        0.702
   60     30       6    0.516  0.0515        0.425        0.628
  120      4      14    0.214  0.0619        0.122        0.377

                SURGERY_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       0    1.000   0.000        1.000            1
   24      5       1    0.833   0.152        0.583            1
   36      5       0    0.833   0.152        0.583            1
   48      3       1    0.625   0.213        0.320            1
   60      3       0    0.625   0.213        0.320            1

                SURGERY_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1054      29    0.974 0.00470        0.965        0.984
   24    938      33    0.943 0.00709        0.929        0.957
   36    794      31    0.909 0.00903        0.892        0.927
   48    671      29    0.874 0.01081        0.853        0.895
   60    559      38    0.821 0.01310        0.796        0.847
  120    121      80    0.628 0.02295        0.585        0.675




   
## Univariable Cox Proportional Hazard Model for:  SURGERY_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

  n= 1360, number of events= 329 

                 coef exp(coef) se(coef)      z Pr(>|z|)    
SURGERY_YNUkn -0.3188    0.7270   0.5896 -0.541    0.589    
SURGERY_YNYes -1.3391    0.2621   0.1355 -9.884   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn    0.7270      1.376    0.2289    2.3090
SURGERY_YNYes    0.2621      3.816    0.2010    0.3418

Concordance= 0.593  (se = 0.009 )
Rsquare= 0.055   (max possible= 0.956 )
Likelihood ratio test= 77.15  on 2 df,   p=0
Wald test            = 99.16  on 2 df,   p=0
Score (logrank) test = 114.3  on 2 df,   p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURGERY_YN

Radiation Yes/No

uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
   
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

   17 observations deleted due to missingness 
                    n events median 0.95LCL 0.95UCL
RADIATION_YN=No  1268    290  149.6   128.5      NA
RADIATION_YN=Yes   75     35   61.9    40.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

17 observations deleted due to missingness 
                RADIATION_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1104      39    0.968 0.00512        0.958        0.978
   24    973      40    0.931 0.00752        0.916        0.946
   36    817      37    0.893 0.00947        0.874        0.912
   48    685      31    0.857 0.01110        0.835        0.879
   60    560      41    0.802 0.01330        0.776        0.828
  120    115      88    0.595 0.02306        0.551        0.642

                RADIATION_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     66       8    0.893  0.0356        0.826        0.966
   24     45      12    0.718  0.0538        0.620        0.832
   36     34       3    0.666  0.0578        0.561        0.789
   48     26       3    0.604  0.0625        0.493        0.740
   60     20       3    0.526  0.0687        0.407        0.680
  120      5       5    0.367  0.0803        0.239        0.563




   
## Univariable Cox Proportional Hazard Model for:  RADIATION_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

  n= 1343, number of events= 325 
   (17 observations deleted due to missingness)

                  coef exp(coef) se(coef)     z Pr(>|z|)    
RADIATION_YNYes 1.0029    2.7262   0.1793 5.592 2.25e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes     2.726     0.3668     1.918     3.874

Concordance= 0.544  (se = 0.007 )
Rsquare= 0.018   (max possible= 0.955 )
Likelihood ratio test= 24.23  on 1 df,   p=8.545e-07
Wald test            = 31.27  on 1 df,   p=2.246e-08
Score (logrank) test = 33.97  on 1 df,   p=5.587e-09





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RADIATION_YN

Chemo Yes/No

uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
   
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                n events median 0.95LCL 0.95UCL
CHEMO_YN=No  1287    298  149.6   128.2      NA
CHEMO_YN=Yes   31     20   30.3    21.9      NA
CHEMO_YN=Ukn   42     11     NA   101.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                CHEMO_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1119      44    0.964 0.00534        0.954        0.974
   24    981      42    0.926 0.00770        0.911        0.941
   36    823      34    0.891 0.00944        0.873        0.910
   48    691      30    0.857 0.01100        0.835        0.878
   60    566      43    0.800 0.01327        0.774        0.826
  120    117      89    0.596 0.02278        0.553        0.642

                CHEMO_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     26       3    0.898  0.0560       0.7942        1.000
   24     15       9    0.581  0.0927       0.4247        0.794
   36     10       3    0.456  0.0968       0.3011        0.692
   48      5       3    0.299  0.0981       0.1576        0.569
   60      2       1    0.200  0.1045       0.0716        0.557

                CHEMO_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     39       1    0.975  0.0247        0.928        1.000
   24     36       1    0.950  0.0345        0.885        1.000
   36     31       3    0.868  0.0553        0.766        0.983
   48     28       1    0.839  0.0605        0.728        0.966
   60     24       0    0.839  0.0605        0.728        0.966
  120      8       5    0.618  0.0975        0.453        0.842




   
## Univariable Cox Proportional Hazard Model for:  CHEMO_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

  n= 1360, number of events= 329 

               coef exp(coef) se(coef)      z Pr(>|z|)    
CHEMO_YNYes  1.8818    6.5650   0.2352  8.001 1.22e-15 ***
CHEMO_YNUkn -0.1860    0.8302   0.3079 -0.604    0.546    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes    6.5650     0.1523    4.1403    10.410
CHEMO_YNUkn    0.8302     1.2045    0.4541     1.518

Concordance= 0.535  (se = 0.007 )
Rsquare= 0.029   (max possible= 0.956 )
Likelihood ratio test= 40.5  on 2 df,   p=1.605e-09
Wald test            = 64.85  on 2 df,   p=8.216e-15
Score (logrank) test = 86.36  on 2 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CHEMO_YN

Treatment Yes/No

uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
   
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

   42 observations deleted due to missingness 
               n events median 0.95LCL 0.95UCL
Tx_YN=FALSE   94     40   72.8    55.7     106
Tx_YN=TRUE  1224    278  149.6   130.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

42 observations deleted due to missingness 
                Tx_YN=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     73      10    0.888  0.0335        0.825        0.956
   24     52      10    0.752  0.0488        0.662        0.854
   36     37       5    0.669  0.0559        0.568        0.788
   48     31       1    0.649  0.0577        0.545        0.772
   60     19       3    0.573  0.0658        0.457        0.718
  120      3       9    0.238  0.0829        0.121        0.471

                Tx_YN=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1072      37    0.968 0.00517        0.958        0.978
   24    944      41    0.930 0.00771        0.915        0.945
   36    796      32    0.896 0.00949        0.877        0.914
   48    665      32    0.857 0.01125        0.835        0.880
   60    549      41    0.801 0.01352        0.775        0.828
  120    114      81    0.606 0.02313        0.563        0.653




   
## Univariable Cox Proportional Hazard Model for:  Tx_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

  n= 1318, number of events= 318 
   (42 observations deleted due to missingness)

             coef exp(coef) se(coef)      z Pr(>|z|)    
Tx_YNTRUE -1.1354    0.3213   0.1702 -6.671 2.54e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

          exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE    0.3213      3.112    0.2302    0.4485

Concordance= 0.547  (se = 0.007 )
Rsquare= 0.025   (max possible= 0.954 )
Likelihood ratio test= 33.83  on 1 df,   p=6.014e-09
Wald test            = 44.5  on 1 df,   p=2.539e-11
Score (logrank) test = 49.46  on 1 df,   p=2.025e-12





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  Tx_YN

Metastases at Dx

uni_var(test_var = "mets_at_dx_F", data_imp = data)
_________________________________________________
   
## mets_at_dx_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                      n events median 0.95LCL 0.95UCL
mets_at_dx_F=FALSE 1355    324  149.6  128.20      NA
mets_at_dx_F=TRUE     5      5   10.8    8.67      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                mets_at_dx_F=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12   1182      45    0.965 0.00513        0.955        0.975
   24   1031      51    0.921 0.00772        0.906        0.937
   36    864      39    0.884 0.00947        0.865        0.903
   48    724      34    0.847 0.01100        0.825        0.869
   60    592      44    0.792 0.01306        0.767        0.818
  120    125      95    0.589 0.02194        0.547        0.633

                mets_at_dx_F=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       3      0.4   0.219       0.1367            1
   24      1       1      0.2   0.179       0.0346            1




   
## Univariable Cox Proportional Hazard Model for:  mets_at_dx_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

  n= 1360, number of events= 329 

                    coef exp(coef) se(coef)    z Pr(>|z|)    
mets_at_dx_FTRUE  3.2623   26.1097   0.4614 7.07 1.55e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                 exp(coef) exp(-coef) lower .95 upper .95
mets_at_dx_FTRUE     26.11     0.0383     10.57      64.5

Concordance= 0.511  (se = 0.001 )
Rsquare= 0.017   (max possible= 0.956 )
Likelihood ratio test= 22.71  on 1 df,   p=1.882e-06
Wald test            = 49.99  on 1 df,   p=1.546e-12
Score (logrank) test = 113.3  on 1 df,   p=0





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  mets_at_dx_F

Tumor specific Variables

Node Size

Cox Proportional Hazard Ratio

Model #1

Full analysis

model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
                     ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
                     data = data)
Loglik converged before variable  10 ; beta may be infinite. X matrix deemed to be singular; variable 5 6
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + 
    INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + 
    EDUCATION_F, data = data)

  n= 1306, number of events= 320 
   (54 observations deleted due to missingness)

                                                   coef  exp(coef)   se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad                     7.095e-01  2.033e+00  3.659e-01  1.939  0.05252 .  
SURG_RAD_SEQRad Alone                         7.361e-01  2.088e+00  2.342e-01  3.143  0.00167 ** 
SURG_RAD_SEQNo Treatment                      8.477e-01  2.334e+00  1.788e-01  4.741 2.13e-06 ***
SURG_RAD_SEQOther                            -3.561e-01  7.004e-01  4.744e-01 -0.750  0.45297    
SURG_RAD_SEQRad before and after Surg                NA         NA  0.000e+00     NA       NA    
SURG_RAD_SEQRad then Surg                            NA         NA  0.000e+00     NA       NA    
INSURANCE_FNone                               8.065e-01  2.240e+00  5.304e-01  1.521  0.12833    
INSURANCE_FMedicaid                          -2.998e-01  7.409e-01  6.605e-01 -0.454  0.64986    
INSURANCE_FMedicare                           1.934e-01  1.213e+00  1.713e-01  1.129  0.25909    
INSURANCE_FOther Government                  -1.292e+01  2.445e-06  9.794e+02 -0.013  0.98947    
INSURANCE_FUnknown                           -1.468e-01  8.635e-01  6.105e-01 -0.240  0.81000    
AGE                                           8.308e-02  1.087e+00  7.292e-03 11.393  < 2e-16 ***
SEX_FFemale                                  -4.088e-01  6.644e-01  1.412e-01 -2.895  0.00380 ** 
RACE_FBlack                                   9.557e-01  2.600e+00  3.960e-01  2.413  0.01581 *  
RACE_FOther/Unk                               3.420e-01  1.408e+00  3.254e-01  1.051  0.29327    
RACE_FAsian                                  -5.815e-01  5.591e-01  4.019e-01 -1.447  0.14796    
INCOME_F$38,000 - $47,999                    -1.102e-01  8.956e-01  2.130e-01 -0.517  0.60485    
INCOME_F$48,000 - $62,999                     1.069e-02  1.011e+00  2.236e-01  0.048  0.96187    
INCOME_F$63,000 +                             4.084e-02  1.042e+00  2.508e-01  0.163  0.87065    
U_R_FUrban                                    1.305e-01  1.139e+00  1.802e-01  0.724  0.46895    
U_R_FRural                                   -7.241e-01  4.847e-01  4.462e-01 -1.623  0.10459    
FACILITY_TYPE_FComprehensive Comm Ca Program  1.846e-01  1.203e+00  3.885e-01  0.475  0.63475    
FACILITY_TYPE_FAcademic/Research Program     -1.418e-03  9.986e-01  3.872e-01 -0.004  0.99708    
FACILITY_TYPE_FIntegrated Network Ca Program  3.764e-01  1.457e+00  4.014e-01  0.938  0.34846    
FACILITY_LOCATION_FMiddle Atlantic           -3.683e-01  6.919e-01  3.001e-01 -1.227  0.21976    
FACILITY_LOCATION_FSouth Atlantic            -5.749e-01  5.627e-01  3.100e-01 -1.855  0.06365 .  
FACILITY_LOCATION_FEast North Central        -2.367e-01  7.892e-01  2.966e-01 -0.798  0.42480    
FACILITY_LOCATION_FEast South Central        -4.062e-01  6.662e-01  3.659e-01 -1.110  0.26698    
FACILITY_LOCATION_FWest North Central         1.014e-02  1.010e+00  3.132e-01  0.032  0.97417    
FACILITY_LOCATION_FWest South Central        -2.580e-01  7.726e-01  3.393e-01 -0.760  0.44703    
FACILITY_LOCATION_FMountain                  -1.218e-02  9.879e-01  3.366e-01 -0.036  0.97113    
FACILITY_LOCATION_FPacific                   -2.346e-01  7.909e-01  3.207e-01 -0.731  0.46448    
EDUCATION_F13 - 20.9%                        -2.889e-01  7.491e-01  2.182e-01 -1.324  0.18545    
EDUCATION_F7 - 12.9%                         -2.523e-01  7.770e-01  2.239e-01 -1.127  0.25986    
EDUCATION_FLess than 7%                      -5.739e-01  5.633e-01  2.605e-01 -2.203  0.02761 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                             exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                    2.033e+00  4.919e-01    0.9923    4.1651
SURG_RAD_SEQRad Alone                        2.088e+00  4.790e-01    1.3193    3.3038
SURG_RAD_SEQNo Treatment                     2.334e+00  4.284e-01    1.6442    3.3140
SURG_RAD_SEQOther                            7.004e-01  1.428e+00    0.2764    1.7750
SURG_RAD_SEQRad before and after Surg               NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                           NA         NA        NA        NA
INSURANCE_FNone                              2.240e+00  4.464e-01    0.7922    6.3345
INSURANCE_FMedicaid                          7.409e-01  1.350e+00    0.2030    2.7039
INSURANCE_FMedicare                          1.213e+00  8.242e-01    0.8672    1.6975
INSURANCE_FOther Government                  2.445e-06  4.090e+05    0.0000       Inf
INSURANCE_FUnknown                           8.635e-01  1.158e+00    0.2610    2.8571
AGE                                          1.087e+00  9.203e-01    1.0712    1.1023
SEX_FFemale                                  6.644e-01  1.505e+00    0.5038    0.8763
RACE_FBlack                                  2.600e+00  3.846e-01    1.1966    5.6510
RACE_FOther/Unk                              1.408e+00  7.104e-01    0.7440    2.6637
RACE_FAsian                                  5.591e-01  1.789e+00    0.2543    1.2291
INCOME_F$38,000 - $47,999                    8.956e-01  1.117e+00    0.5900    1.3597
INCOME_F$48,000 - $62,999                    1.011e+00  9.894e-01    0.6520    1.5668
INCOME_F$63,000 +                            1.042e+00  9.600e-01    0.6372    1.7030
U_R_FUrban                                   1.139e+00  8.777e-01    0.8004    1.6219
U_R_FRural                                   4.847e-01  2.063e+00    0.2022    1.1622
FACILITY_TYPE_FComprehensive Comm Ca Program 1.203e+00  8.315e-01    0.5616    2.5757
FACILITY_TYPE_FAcademic/Research Program     9.986e-01  1.001e+00    0.4676    2.1327
FACILITY_TYPE_FIntegrated Network Ca Program 1.457e+00  6.864e-01    0.6634    3.1999
FACILITY_LOCATION_FMiddle Atlantic           6.919e-01  1.445e+00    0.3842    1.2460
FACILITY_LOCATION_FSouth Atlantic            5.627e-01  1.777e+00    0.3065    1.0332
FACILITY_LOCATION_FEast North Central        7.892e-01  1.267e+00    0.4413    1.4114
FACILITY_LOCATION_FEast South Central        6.662e-01  1.501e+00    0.3252    1.3648
FACILITY_LOCATION_FWest North Central        1.010e+00  9.899e-01    0.5468    1.8664
FACILITY_LOCATION_FWest South Central        7.726e-01  1.294e+00    0.3973    1.5024
FACILITY_LOCATION_FMountain                  9.879e-01  1.012e+00    0.5108    1.9107
FACILITY_LOCATION_FPacific                   7.909e-01  1.264e+00    0.4218    1.4829
EDUCATION_F13 - 20.9%                        7.491e-01  1.335e+00    0.4885    1.1488
EDUCATION_F7 - 12.9%                         7.770e-01  1.287e+00    0.5010    1.2051
EDUCATION_FLess than 7%                      5.633e-01  1.775e+00    0.3381    0.9387

Concordance= 0.769  (se = 0.018 )
Rsquare= 0.218   (max possible= 0.956 )
Likelihood ratio test= 321.2  on 33 df,   p=0
Wald test            = 282.4  on 33 df,   p=0
Score (logrank) test = 323.3  on 33 df,   p=0

Summary of Model

model_one %>%
        tidy(., exponentiate = TRUE) %>%
        select(term, estimate, conf.low, conf.high, p.value) %>%
        rename(Variable = term,
               Hazard_Ratio = estimate) %>%
        tbl_df %>%
        print(n = nrow(.))

Prediction Logistic Regression Models

Surgery

no_Ukns <- data %>%
  filter(SURGERY_YN != "Ukn") %>% 
  droplevels() %>% 
  mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Ukns)
summary(fit_surg)

Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F + 
    FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP, 
    data = no_Ukns)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.04332   0.02216   0.08885   0.14441   0.46220  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                   0.445496   0.087695   5.080 4.34e-07 ***
AGE_F(54,64]                                  0.013753   0.034559   0.398 0.690740    
AGE_F(64,74]                                 -0.003370   0.032442  -0.104 0.917276    
AGE_F(74,100]                                -0.084306   0.031430  -2.682 0.007405 ** 
SEX_FFemale                                   0.105244   0.022526   4.672 3.30e-06 ***
RACE_FBlack                                  -0.067798   0.064178  -1.056 0.290985    
RACE_FOther/Unk                              -0.023444   0.055262  -0.424 0.671470    
RACE_FAsian                                   0.016034   0.042381   0.378 0.705245    
INCOME_F$38,000 - $47,999                     0.049473   0.033565   1.474 0.140738    
INCOME_F$48,000 - $62,999                     0.024591   0.035413   0.694 0.487545    
INCOME_F$63,000 +                             0.010826   0.039102   0.277 0.781932    
U_R_FUrban                                   -0.006702   0.027962  -0.240 0.810606    
U_R_FRural                                   -0.015718   0.064070  -0.245 0.806237    
FACILITY_TYPE_FComprehensive Comm Ca Program  0.204955   0.059591   3.439 0.000602 ***
FACILITY_TYPE_FAcademic/Research Program      0.244610   0.059071   4.141 3.69e-05 ***
FACILITY_TYPE_FIntegrated Network Ca Program  0.238439   0.062503   3.815 0.000143 ***
FACILITY_LOCATION_FMiddle Atlantic            0.057863   0.050261   1.151 0.249850    
FACILITY_LOCATION_FSouth Atlantic             0.076820   0.050921   1.509 0.131651    
FACILITY_LOCATION_FEast North Central         0.063001   0.051123   1.232 0.218052    
FACILITY_LOCATION_FEast South Central         0.043943   0.058719   0.748 0.454378    
FACILITY_LOCATION_FWest North Central         0.036685   0.053834   0.681 0.495711    
FACILITY_LOCATION_FWest South Central         0.066752   0.057315   1.165 0.244380    
FACILITY_LOCATION_FMountain                   0.006883   0.059313   0.116 0.907634    
FACILITY_LOCATION_FPacific                    0.051169   0.053086   0.964 0.335280    
EDUCATION_F13 - 20.9%                         0.024341   0.032962   0.738 0.460381    
EDUCATION_F7 - 12.9%                         -0.000791   0.034265  -0.023 0.981585    
EDUCATION_FLess than 7%                       0.042701   0.038625   1.106 0.269144    
EXPN_GROUPPre-Expansion                       0.083581   0.025082   3.332 0.000886 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.09760238)

    Null deviance: 134.21  on 1298  degrees of freedom
Residual deviance: 124.05  on 1271  degrees of freedom
  (53 observations deleted due to missingness)
AIC: 693.51

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.5612650 1.3147115 1.8540558
AGE_F(54,64]                                  1.0138477 0.9474485 1.0849002
AGE_F(64,74]                                  0.9966353 0.9352361 1.0620655
AGE_F(74,100]                                 0.9191496 0.8642376 0.9775507
SEX_FFemale                                   1.1109818 1.0629995 1.1611300
RACE_FBlack                                   0.9344493 0.8240002 1.0597030
RACE_FOther/Unk                               0.9768287 0.8765545 1.0885739
RACE_FAsian                                   1.0161633 0.9351667 1.1041752
INCOME_F$38,000 - $47,999                     1.0507173 0.9838200 1.1221634
INCOME_F$48,000 - $62,999                     1.0248964 0.9561728 1.0985594
INCOME_F$63,000 +                             1.0108846 0.9363063 1.0914032
U_R_FUrban                                    0.9933201 0.9403471 1.0492774
U_R_FRural                                    0.9844044 0.8682352 1.1161170
FACILITY_TYPE_FComprehensive Comm Ca Program  1.2274698 1.0921608 1.3795424
FACILITY_TYPE_FAcademic/Research Program      1.2771233 1.1374991 1.4338859
FACILITY_TYPE_FIntegrated Network Ca Program  1.2692659 1.1229229 1.4346808
FACILITY_LOCATION_FMiddle Atlantic            1.0595695 0.9601676 1.1692621
FACILITY_LOCATION_FSouth Atlantic             1.0798475 0.9772778 1.1931825
FACILITY_LOCATION_FEast North Central         1.0650276 0.9634847 1.1772722
FACILITY_LOCATION_FEast South Central         1.0449231 0.9313279 1.1723738
FACILITY_LOCATION_FWest North Central         1.0373665 0.9334875 1.1528052
FACILITY_LOCATION_FWest South Central         1.0690298 0.9554400 1.1961241
FACILITY_LOCATION_FMountain                   1.0069069 0.8963996 1.1310374
FACILITY_LOCATION_FPacific                    1.0525013 0.9484966 1.1679103
EDUCATION_F13 - 20.9%                         1.0246391 0.9605362 1.0930200
EDUCATION_F7 - 12.9%                          0.9992093 0.9343085 1.0686184
EDUCATION_FLess than 7%                       1.0436254 0.9675357 1.1256989
EXPN_GROUPPre-Expansion                       1.0871728 1.0350199 1.1419537

Metastasis at Time of Diagnosis

# limit to those cases where data about expansion status is available (> Age 39, non-ambiguous status states)
fit_mets <- glm(mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = data)
summary(fit_mets)

Call:
glm(formula = mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + 
    U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + 
    EXPN_GROUP, data = data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.03852  -0.00794  -0.00167   0.00315   0.97149  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)   
(Intercept)                                   0.008245   0.015317   0.538  0.59046   
AGE_F(54,64]                                 -0.002138   0.006083  -0.352  0.72526   
AGE_F(64,74]                                  0.002453   0.005712   0.429  0.66771   
AGE_F(74,100]                                 0.002494   0.005533   0.451  0.65228   
SEX_FFemale                                  -0.005388   0.003958  -1.361  0.17371   
RACE_FBlack                                  -0.001026   0.011303  -0.091  0.92770   
RACE_FOther/Unk                              -0.002781   0.009732  -0.286  0.77507   
RACE_FAsian                                   0.005807   0.007409   0.784  0.43330   
INCOME_F$38,000 - $47,999                     0.004601   0.005908   0.779  0.43623   
INCOME_F$48,000 - $62,999                     0.012805   0.006233   2.054  0.04015 * 
INCOME_F$63,000 +                             0.015667   0.006882   2.276  0.02299 * 
U_R_FUrban                                    0.005703   0.004911   1.161  0.24572   
U_R_FRural                                   -0.001466   0.011282  -0.130  0.89667   
FACILITY_TYPE_FComprehensive Comm Ca Program  0.009172   0.010326   0.888  0.37459   
FACILITY_TYPE_FAcademic/Research Program      0.007585   0.010236   0.741  0.45879   
FACILITY_TYPE_FIntegrated Network Ca Program  0.007984   0.010841   0.737  0.46156   
FACILITY_LOCATION_FMiddle Atlantic            0.005419   0.008763   0.618  0.53641   
FACILITY_LOCATION_FSouth Atlantic             0.004400   0.008884   0.495  0.62052   
FACILITY_LOCATION_FEast North Central         0.004650   0.008918   0.521  0.60212   
FACILITY_LOCATION_FEast South Central         0.002356   0.010273   0.229  0.81867   
FACILITY_LOCATION_FWest North Central         0.009722   0.009406   1.034  0.30152   
FACILITY_LOCATION_FWest South Central         0.004460   0.010002   0.446  0.65573   
FACILITY_LOCATION_FMountain                   0.004751   0.010375   0.458  0.64710   
FACILITY_LOCATION_FPacific                    0.004531   0.009276   0.488  0.62533   
EDUCATION_F13 - 20.9%                        -0.011299   0.005803  -1.947  0.05174 . 
EDUCATION_F7 - 12.9%                         -0.016662   0.006026  -2.765  0.00577 **
EDUCATION_FLess than 7%                      -0.022099   0.006798  -3.251  0.00118 **
EXPN_GROUPPre-Expansion                      -0.013997   0.004413  -3.172  0.00155 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.003027929)

    Null deviance: 3.9877  on 1305  degrees of freedom
Residual deviance: 3.8697  on 1278  degrees of freedom
  (54 observations deleted due to missingness)
AIC: -3838.7

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_mets), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.0082792 1.3147115 1.8540558
AGE_F(54,64]                                  0.9978640 0.9474485 1.0849002
AGE_F(64,74]                                  1.0024556 0.9352361 1.0620655
AGE_F(74,100]                                 1.0024967 0.8642376 0.9775507
SEX_FFemale                                   0.9946270 1.0629995 1.1611300
RACE_FBlack                                   0.9989747 0.8240002 1.0597030
RACE_FOther/Unk                               0.9972224 0.8765545 1.0885739
RACE_FAsian                                   1.0058240 0.9351667 1.1041752
INCOME_F$38,000 - $47,999                     1.0046116 0.9838200 1.1221634
INCOME_F$48,000 - $62,999                     1.0128872 0.9561728 1.0985594
INCOME_F$63,000 +                             1.0157902 0.9363063 1.0914032
U_R_FUrban                                    1.0057193 0.9403471 1.0492774
U_R_FRural                                    0.9985355 0.8682352 1.1161170
FACILITY_TYPE_FComprehensive Comm Ca Program  1.0092138 1.0921608 1.3795424
FACILITY_TYPE_FAcademic/Research Program      1.0076141 1.1374991 1.4338859
FACILITY_TYPE_FIntegrated Network Ca Program  1.0080163 1.1229229 1.4346808
FACILITY_LOCATION_FMiddle Atlantic            1.0054339 0.9601676 1.1692621
FACILITY_LOCATION_FSouth Atlantic             1.0044096 0.9772778 1.1931825
FACILITY_LOCATION_FEast North Central         1.0046612 0.9634847 1.1772722
FACILITY_LOCATION_FEast South Central         1.0023583 0.9313279 1.1723738
FACILITY_LOCATION_FWest North Central         1.0097697 0.9334875 1.1528052
FACILITY_LOCATION_FWest South Central         1.0044702 0.9554400 1.1961241
FACILITY_LOCATION_FMountain                   1.0047619 0.8963996 1.1310374
FACILITY_LOCATION_FPacific                    1.0045408 0.9484966 1.1679103
EDUCATION_F13 - 20.9%                         0.9887643 0.9605362 1.0930200
EDUCATION_F7 - 12.9%                          0.9834760 0.9343085 1.0686184
EDUCATION_FLess than 7%                       0.9781431 0.9675357 1.1256989
EXPN_GROUPPre-Expansion                       0.9861010 1.0350199 1.1419537

Same but for Breast

prim_site_text <- data_frame(PRIMARY_SITE = 
                               
                               c(#breast
                                "C500", "C501", "C502","C503","C504","C505",
                                 "C506","C508","C509"),
SITE_TEXT = c(
#breast
  "C50.0 Nipple",
"C50.1 Central portion of breast",
"C50.2 Upper-inner quadrant breast",
"C50.3 Lower-inner quadrant breast",
"C50.4 Upper-outer quadrant breast",
"C50.5 Lower-outer quadrant",
"C50.6 Axillary tail of breast", 
"C50.8 Overlapping lesion of breast",
"C50.9 Breast NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE) 
 
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
              "DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS",  "RAD_REGIONAL_DOSE_CGY",
              "RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", 
              "DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
              "RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
        mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
                                            "Community Cancer Program" = "1",
                                            "Comprehensive Comm Ca Program" = "2",
                                            "Academic/Research Program" = "3",
                                            "Integrated Network Ca Program" = "4",
                                            "Other" = "9")) %>%
        mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
                                            "New England" = "1",
                                            "Middle Atlantic" = "2",
                                            "South Atlantic" = "3",
                                            "East North Central" = "4",
                                            "East South Central" = "5",
                                            "West North Central" = "6",
                                            "West South Central" = "7",
                                            "Mountain" = "8",
                                            "Pacific" = "9",
                                            "out of US" = "0")) %>%
        mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
                                                 "Northeast" = c("1", "2"),
                                                 "South" = c("3", "7"),
                                                 "Midwest" = c("4", "5", "6"),
                                                 "West" = c("8", "9"))) %>%
        mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
        mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
        mutate(SEX_F = fct_recode(SEX,
                                "Male" = "1",
                                "Female" = "2")) %>%
        mutate(RACE_F = fct_collapse(RACE,
                                "White" = c("01"),
                                "Black" = c("02"),
                                "Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
                                            "16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
                                            "32", "96", "97"),
                                "Other/Unk" = c("03", "98", "99"))) %>%
        mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
                                       "Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
                                       "No" = c("0"),
                                       "Unknown" = c("9"))) %>%
        mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
                                         "None" = "0",
                                         "Private" = "1",
                                         "Medicaid" = "2",
                                         "Medicare" = "3",
                                         "Other Government" = "4",
                                         "Unknown" = "9")) %>%
        mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
                                         "Private")) %>%
        mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
                                      "Less than $38,000" = "1",
                                      "$38,000 - $47,999" = "2",
                                      "$48,000 - $62,999" = "3",
                                      "$63,000 +" = "4")) %>%
        mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
                                        "21% or more" = "1",
                                        "13 - 20.9%" = "2",
                                        "7 - 12.9%" = "3",
                                        "Less than 7%" = "4")) %>%
        mutate(U_R_F = fct_collapse(UR_CD_13,
                                    "Metro" = c("1", "2", "3"),
                                    "Urban" = c("4", "5", "6", "7"),
                                    "Rural" = c("8", "9"))) %>%
        mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
                                              All_Part_Prim = c("10", "11", "12", "13",
                                                                "14", "20", "21", "22"),
                                              Other_Facility = c("00"))) %>%
        mutate(GRADE_F = fct_recode(GRADE,
                                  "Gr I: Well Diff" = "1",
                                  "Gr II: Mod Diff" = "2",
                                  "Gr III: Poor Diff" = "3",
                                  "Gr IV: Undiff/Anaplastic" = "4",
                                  "NA/Unkown" = "9")) %>%
        mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
        mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
        mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
        mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
                                        "1")) %>%
        mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
                                        "1")) %>%
        mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
                                    "No Residual" = "0",
                                    "Residual, NOS" = "1",
                                    "Microscopic Resid" = "2",
                                    "Macroscopic Resid" = "3",
                                    "Not evaluable" = "7",
                                    "No surg" = "8",
                                    "Unknown" = "9")) %>%
        mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
                                         "Yes" = c("1", "2", "3"),
                                         "No" = c("0"),
                                         "No surg/Unk/NA" = c("7", "8", "9"))) %>%
        mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
                                                 "No_Surg_or_No_Readmit" = "0",
                                                 "Unplan_Readmit_Same" = "1",
                                                 "Plan_Readmit_Same" = "2",
                                                 "PlanUnplan_Same" = "3",
                                                 "Unknown" = "4")) %>%
        mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
                                                "None" = "0",
                                                "Beam Radiation" = "1",
                                                "Radioactive Implants" = "2",
                                                "Radioisotopes" = "3",
                                                "Beam + Imp or Isotopes" = "4",
                                                "Radiation, NOS" = "5",
                                                "Unknown" = "9")) %>%
        mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
                                                 "Alive_30" = "0",
                                                 "Dead_30" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
                                                 "Alive_90" = "0",
                                                 "Dead_90" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
                                                      "Neg_LymphVasc_Inv" = "0",
                                                      "Pos_LumphVasc_Inv" = "1",
                                                      "N_A" = "8",
                                                      "Unknown" = "9")) %>%
        mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
                                                     "No_Surg" = "0",
                                                     "Robot_Assist" = "1",
                                                     "Robot_to_Open" = "2",
                                                     "Endo_Lap" = "3",
                                                     "Endo_Lap_to_Open" = "4",
                                                     "Open_Unknown" = "5",
                                                     "Unknown" = "9")) %>%
        mutate(All = "All") %>%
        mutate(All = factor(All)) %>%
        mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
                                                    "Surg performed" = "0",
                                                    "Surg not recommended" = "1",
                                                    "No surg due to pt factors" = "2",
                                                    "No surg, pt died" = "5",
                                                    "Surg rec, not done" = "6",
                                                    "Surg rec, pt refused" = "7",
                                                    "Surg rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_SURGERY == "9",
                                          "Ukn",
                                          "No"))) %>%
        mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
                             SURGERY_YN == "No" ~ FALSE,
                             TRUE ~ NA))  %>%
        mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
                                                    "Rad performed" = "0",
                                                    "Rad not recommended" = "1",
                                                    "No Rad due to pt factors" = "2",
                                                    "No Rad, pt died" = "5",
                                                    "Rad rec, not done" = "6",
                                                    "Rad rec, pt refused" = "7",
                                                    "Rad rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_RADIATION == "9",
                                          NA,
                                          "No"))) %>%
        mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
                                                   "None or Surg or Rad" = "0",
                                                   "Rad before Surg" = "2",
                                                   "Surg before Rad" = "3",
                                                   "Rad before and after Surg" = "4",
                                                   "Intraop Rad" = "5",
                                                   "Intraop Rad plus other" = "6",
                                                   "Unknown" = "9")) %>%
        mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                     "Surg Alone",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                            "Rad Alone",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
                                                   "No Treatment",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2",
                                                          "Rad then Surg",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3",
                                                                 "Surg then Rad",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4",
                                                                        "Rad before and after Surg",
                                                                        "Other"))))))) %>%
        mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
                                          "Surg Alone",
                                          "Surg then Rad",
                                          "Rad Alone")) %>%
        mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
                                       "No" = c("00", "82", "85", "86", "87"),
                                       "Yes" = c("01", "02", "03"),
                                       "Ukn" = c("88", "99"))) %>%
        mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                     "Surg, No rad, No Chemo",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                            "Rad, No Surg, No Chemo",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                                   "No Surg, No Rad, No Chemo",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
                                                          "Rad then Surg, No Chemo",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
                                                                 "Surg then Rad, No Chemo",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
                                                                        "Rad before and after Surg, No Chemo",
                                ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                       "Surg, No rad, Yes Chemo",
                                       ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                              "Rad, No Surg, Yes Chemo",
                                              ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                                     "No Surg, No Rad, Yes Chemo",
                                                     ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
                                                            "Rad then Surg, Yes Chemo",
                                                            ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
                                                                   "Surg then Rad, Yes Chemo",
                                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
                                                                          "Rad before and after Surg, Yes Chemo",
                                                                          "Other"))))))))))))) %>%
        mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
        mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
        mutate(T_SIZE = ifelse(T_SIZE == 0,
                                "No Tumor",
                                ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
                                       "< 1 cm",
                                       ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
                                              "1-2 cm",
                                              ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
                                                     "2-3 cm",
                                                     ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
                                                            "3-4 cm",
                                                            ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
                                                                   "4-5 cm",
                                                                   ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
                                                                          "5-6 cm",
                                                                          ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
                                                                                         T_SIZE == 980 | T_SIZE == 989 |
                                                                                         T_SIZE == 997,
                                                                          ">6 cm",
                                                                          ifelse(T_SIZE == 988 | T_SIZE == 999,
                                                                                 "NA_unk",
                                                                                 "Microscopic focus")))))))))) %>%
        mutate(T_SIZE = factor(T_SIZE)) %>%
        mutate(T_SIZE = fct_relevel(T_SIZE,
                                     "No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
                                       "4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
        mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
                                      CS_METS_DX_BONE == "1" ~ "Bone",
                                      CS_METS_DX_BRAIN == "1" ~ "Brain",
                                      CS_METS_DX_LIVER == "1" ~ "Liver",
                                      TRUE ~ "None/Other/Unk/NA")) %>%
        mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
                                               "Non-Expansion State" = "0",
                                               "Jan 2014 Expansion States" = "1",
                                               "Early Expansion States (2010-13)" = "2",
                                               "Late Expansion States (> Jan 2014)" = "3",
                                               "Suppressed for Ages 0 - 39" = "9"))  %>%
        mutate(EXPN_GROUP =  case_when(MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
                                       
                                       MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% 
                                          c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
               
                                       MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
                                       
                                        MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
                    
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") & 
                                        YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
                                       
                                       MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
  
  mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013")) %>%
  
  mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>% 
  
  mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE, 
                        ifelse(CHEMO_YN == "Ukn", NA, 
                               TRUE)))
Unknown levels in `f`: 9Unknown levels in `f`: 0Unknown levels in `f`: 88Unknown levels in `f`: 1Unknown levels in `f`: 88Unknown levels in `f`: 88Unknown levels in `f`: 88Unknown levels in `f`: 1Unknown levels in `f`: 88Unknown levels in `f`: 88Unknown levels in `f`: 88Unknown levels in `f`: 88Unknown levels in `f`: 4Unknown levels in `f`: 5Unknown levels in `f`: 0, 1, 2, 3, 9
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
                 "HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
                 "CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
                 "BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
                 "MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
        mutate_at(fact_vars_2, funs(factor(.)))

Extract data of interest

# MPD
site_code <- c(
 #breast
  "C500", "C501", "C502","C503","C504","C505",
                                 "C506","C508","C509")
histo_code <- c("8540")
behavior_code <- c("3")
data <- dat %>%
        filter(BEHAVIOR %in% behavior_code) %>%
        filter(PRIMARY_SITE %in% site_code) %>%
        filter(HISTOLOGY %in% histo_code) %>%
#        filter(AGE >= 18) %>%
        filter(is.na(PUF_VITAL_STATUS) == FALSE) %>%
        filter(is.na(DX_LASTCONTACT_DEATH_MONTHS) == FALSE) %>%
        filter(SEQUENCE_NUMBER == "00") 
no_Excludes <- as.data.frame(data %>% 
                               filter(EXPN_GROUP != "Exclude") 
                             %>% droplevels())
#file_path <- c("/Users/beastatlife/Google Drive/Penn/Research/Barbieri/NCDB")
#save(data,
#      file = paste0(file_path, "/breast_data.Rda"))
#load("EMPD_data.Rda")

Data including skin tumors was obtained from the NCBD on October 7, 2019. Cases that were included in this analysis were those with:

  1. Site codes: C500, C501, C502, C503, C504, C505, C506, C508, C509
  2. Histology codes: 8540
  3. Behavior codes: 3

Patients were excluded if they didn’t have values for either follow up or vital status.

Patients were excluded if they had surgery to a distant site using RX_SUMM_SURG_OTH_REGDIS. This was done to avoid confounding of different surgical procedures. We are only interested in surgery at the primary site. These distant site surgeries were being counted in the surgery/radiation sequence and thus to simplify analysis they were removed.

data %>%
        CreateTableOne(data = .,
                     vars = c("RX_SUMM_SURG_OTH_REGDIS"),
                     includeNA = TRUE) %>%
        print(.,
              showAllLevels = TRUE)
                             
                              level Overall    
  n                                 700        
  RX_SUMM_SURG_OTH_REGDIS (%) 0     675 (96.4) 
                              1       6 ( 0.9) 
                              2       1 ( 0.1) 
                              3       0 ( 0.0) 
                              4       3 ( 0.4) 
                              5       0 ( 0.0) 
                              9      15 ( 2.1) 
data <- data %>%
        filter(RX_SUMM_SURG_OTH_REGDIS == "0") 

Race was grouped as white, black, asian, other/unknown Stage was grouped into 0, I, II, III, IV, NA_Unknown, stage 0 was removed Whether surgery was performed was based on the REASON_FOR_NO_SURGERY variable. The SURGERY_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Whether radiation was performed was based on the REASON_FOR_NO_RADIATION variable. The RADIATION_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Table of variables for all cases:

Table of variables for all cases:

p_table(data,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT.y",  "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE", "EXPN_GROUP", "SITE_TEXT"))
The data frame does not have: SITE_TEXT  Dropped
level Overall
n 675
FACILITY_TYPE_F (%) Community Cancer Program 81 ( 12.0)
Comprehensive Comm Ca Program 296 ( 43.9)
Academic/Research Program 173 ( 25.6)
Integrated Network Ca Program 90 ( 13.3)
NA 35 ( 5.2)
FACILITY_LOCATION_F (%) New England 31 ( 4.6)
Middle Atlantic 93 ( 13.8)
South Atlantic 143 ( 21.2)
East North Central 134 ( 19.9)
East South Central 44 ( 6.5)
West North Central 59 ( 8.7)
West South Central 60 ( 8.9)
Mountain 35 ( 5.2)
Pacific 41 ( 6.1)
NA 35 ( 5.2)
FACILITY_GEOGRAPHY (%) Northeast 124 ( 18.4)
South 203 ( 30.1)
Midwest 237 ( 35.1)
West 76 ( 11.3)
NA 35 ( 5.2)
AGE (mean (sd)) 65.56 (15.04)
AGE_F (%) (0,54] 161 ( 23.9)
(54,64] 149 ( 22.1)
(64,74] 149 ( 22.1)
(74,100] 216 ( 32.0)
AGE_40 (%) (0,40] 38 ( 5.6)
(40,100] 637 ( 94.4)
SEX_F (%) Male 19 ( 2.8)
Female 656 ( 97.2)
RACE_F (%) White 570 ( 84.4)
Black 77 ( 11.4)
Other/Unk 16 ( 2.4)
Asian 12 ( 1.8)
HISPANIC (%) No 587 ( 87.0)
Yes 27 ( 4.0)
Unknown 61 ( 9.0)
INSURANCE_F (%) Private 273 ( 40.4)
None 24 ( 3.6)
Medicaid 35 ( 5.2)
Medicare 320 ( 47.4)
Other Government 8 ( 1.2)
Unknown 15 ( 2.2)
INCOME_F (%) Less than $38,000 130 ( 19.3)
$38,000 - $47,999 144 ( 21.3)
$48,000 - $62,999 178 ( 26.4)
$63,000 + 218 ( 32.3)
NA 5 ( 0.7)
EDUCATION_F (%) 21% or more 99 ( 14.7)
13 - 20.9% 164 ( 24.3)
7 - 12.9% 222 ( 32.9)
Less than 7% 186 ( 27.6)
NA 4 ( 0.6)
U_R_F (%) Metro 557 ( 82.5)
Urban 88 ( 13.0)
Rural 12 ( 1.8)
NA 18 ( 2.7)
CROWFLY (mean (sd)) 25.98 (113.56)
CDCC_TOTAL_BEST (%) 0 558 ( 82.7)
1 80 ( 11.9)
2 23 ( 3.4)
3 14 ( 2.1)
SITE_TEXT.y (%) C50.0 Nipple 448 ( 66.4)
C50.1 Central portion of breast 46 ( 6.8)
C50.2 Upper-inner quadrant breast 7 ( 1.0)
C50.3 Lower-inner quadrant breast 5 ( 0.7)
C50.4 Upper-outer quadrant breast 44 ( 6.5)
C50.5 Lower-outer quadrant 8 ( 1.2)
C50.6 Axillary tail of breast 2 ( 0.3)
C50.8 Overlapping lesion of breast 33 ( 4.9)
C50.9 Breast NOS 82 ( 12.1)
BEHAVIOR (%) 2 0 ( 0.0)
3 675 (100.0)
GRADE_F (%) Gr I: Well Diff 22 ( 3.3)
Gr II: Mod Diff 55 ( 8.1)
Gr III: Poor Diff 106 ( 15.7)
Gr IV: Undiff/Anaplastic 2 ( 0.3)
5 0 ( 0.0)
6 0 ( 0.0)
7 0 ( 0.0)
8 0 ( 0.0)
NA/Unkown 490 ( 72.6)
DX_STAGING_PROC_DAYS (mean (sd)) 1.68 (10.24)
TNM_CLIN_T (%) c0 5 ( 0.7)
c1 37 ( 5.5)
c1A 12 ( 1.8)
c1B 9 ( 1.3)
c1C 15 ( 2.2)
c1MI 4 ( 0.6)
c2 21 ( 3.1)
c2A 0 ( 0.0)
c2B 0 ( 0.0)
c2C 0 ( 0.0)
c3 18 ( 2.7)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c4 10 ( 1.5)
c4A 0 ( 0.0)
c4B 10 ( 1.5)
c4C 0 ( 0.0)
c4D 3 ( 0.4)
cX 188 ( 27.9)
N_A 0 ( 0.0)
pA 0 ( 0.0)
pIS 307 ( 45.5)
NA 36 ( 5.3)
TNM_CLIN_N (%) c0 449 ( 66.5)
c1 26 ( 3.9)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c2 6 ( 0.9)
c2A 2 ( 0.3)
c2B 1 ( 0.1)
c2C 0 ( 0.0)
c3 3 ( 0.4)
c3A 1 ( 0.1)
c3B 0 ( 0.0)
c3C 0 ( 0.0)
cX 162 ( 24.0)
N_A 0 ( 0.0)
NA 25 ( 3.7)
TNM_CLIN_M (%) c0 614 ( 91.0)
c0I+ 0 ( 0.0)
c1 26 ( 3.9)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c1C 0 ( 0.0)
N_A 0 ( 0.0)
NA 35 ( 5.2)
TNM_CLIN_STAGE_GROUP (%) 0 333 ( 49.3)
1 39 ( 5.8)
1A 32 ( 4.7)
1B 1 ( 0.1)
1C 0 ( 0.0)
2 0 ( 0.0)
2A 23 ( 3.4)
2B 13 ( 1.9)
2C 0 ( 0.0)
3 2 ( 0.3)
3A 7 ( 1.0)
3B 12 ( 1.8)
3C 3 ( 0.4)
4 27 ( 4.0)
4A 0 ( 0.0)
4B 0 ( 0.0)
4C 0 ( 0.0)
99 183 ( 27.1)
N_A 0 ( 0.0)
TNM_PATH_T (%) N_A 0 ( 0.0)
p0 8 ( 1.2)
p1 13 ( 1.9)
p1A 17 ( 2.5)
p1B 11 ( 1.6)
p1C 24 ( 3.6)
p1MI 7 ( 1.0)
p2 12 ( 1.8)
p2A 0 ( 0.0)
p2B 0 ( 0.0)
p3 2 ( 0.3)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p4 1 ( 0.1)
p4A 0 ( 0.0)
p4B 5 ( 0.7)
p4C 0 ( 0.0)
p4D 3 ( 0.4)
pA 0 ( 0.0)
pIS 261 ( 38.7)
pX 253 ( 37.5)
NA 58 ( 8.6)
TNM_PATH_N (%) N_A 0 ( 0.0)
p0 233 ( 34.5)
p0I- 30 ( 4.4)
p0I+ 2 ( 0.3)
p0M- 0 ( 0.0)
p0M+ 0 ( 0.0)
p1 7 ( 1.0)
p1A 9 ( 1.3)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
p1MI 2 ( 0.3)
p2 2 ( 0.3)
p2A 2 ( 0.3)
p2B 0 ( 0.0)
p2C 0 ( 0.0)
p3 2 ( 0.3)
p3A 3 ( 0.4)
p3B 0 ( 0.0)
p3C 0 ( 0.0)
pX 304 ( 45.0)
NA 79 ( 11.7)
TNM_PATH_M (%) N_A 0 ( 0.0)
p1 8 ( 1.2)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
pX 344 ( 51.0)
NA 323 ( 47.9)
TNM_PATH_STAGE_GROUP (%) 0 298 ( 44.1)
1 55 ( 8.1)
1A 26 ( 3.9)
1B 2 ( 0.3)
1C 0 ( 0.0)
2 3 ( 0.4)
2A 21 ( 3.1)
2B 8 ( 1.2)
2C 0 ( 0.0)
3 0 ( 0.0)
3A 4 ( 0.6)
3B 6 ( 0.9)
3C 5 ( 0.7)
4 9 ( 1.3)
4A 0 ( 0.0)
4B 0 ( 0.0)
4C 0 ( 0.0)
99 198 ( 29.3)
N_A 0 ( 0.0)
NA 40 ( 5.9)
DX_RX_STARTED_DAYS (mean (sd)) 35.43 (34.86)
DX_SURG_STARTED_DAYS (mean (sd)) 38.84 (40.14)
DX_DEFSURG_STARTED_DAYS (mean (sd)) 46.51 (46.12)
MARGINS (%) No Residual 511 ( 75.7)
Residual, NOS 10 ( 1.5)
Microscopic Resid 11 ( 1.6)
Macroscopic Resid 3 ( 0.4)
Not evaluable 0 ( 0.0)
No surg 122 ( 18.1)
Unknown 18 ( 2.7)
MARGINS_YN (%) No 511 ( 75.7)
Yes 24 ( 3.6)
No surg/Unk/NA 140 ( 20.7)
SURG_DISCHARGE_DAYS (mean (sd)) 1.00 (4.05)
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 627 ( 92.9)
Unplan_Readmit_Same 15 ( 2.2)
Plan_Readmit_Same 18 ( 2.7)
PlanUnplan_Same 1 ( 0.1)
9 14 ( 2.1)
RX_SUMM_RADIATION_F (%) None 465 ( 68.9)
Beam Radiation 200 ( 29.6)
Radioactive Implants 2 ( 0.3)
Radioisotopes 0 ( 0.0)
Beam + Imp or Isotopes 0 ( 0.0)
Radiation, NOS 0 ( 0.0)
Unknown 8 ( 1.2)
PUF_30_DAY_MORT_CD_F (%) Alive_30 542 ( 80.3)
Dead_30 1 ( 0.1)
Unknown 6 ( 0.9)
NA 126 ( 18.7)
PUF_90_DAY_MORT_CD_F (%) Alive_90 536 ( 79.4)
Dead_90 3 ( 0.4)
Unknown 10 ( 1.5)
NA 126 ( 18.7)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 59.19 (42.79)
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 162 ( 24.0)
Pos_LumphVasc_Inv 10 ( 1.5)
N_A 0 ( 0.0)
Unknown 154 ( 22.8)
NA 349 ( 51.7)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 96 ( 14.2)
Robot_Assist 0 ( 0.0)
Robot_to_Open 0 ( 0.0)
Endo_Lap 1 ( 0.1)
Endo_Lap_to_Open 0 ( 0.0)
Open_Unknown 229 ( 33.9)
Unknown 0 ( 0.0)
NA 349 ( 51.7)
SURG_RAD_SEQ (%) Surg Alone 363 ( 53.8)
Surg then Rad 181 ( 26.8)
Rad Alone 19 ( 2.8)
No Treatment 95 ( 14.1)
Other 15 ( 2.2)
Rad before and after Surg 0 ( 0.0)
Rad then Surg 2 ( 0.3)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 321 ( 47.6)
Surg then Rad, No Chemo 141 ( 20.9)
Surg then Rad, Yes Chemo 33 ( 4.9)
Surg, No rad, Yes Chemo 25 ( 3.7)
No Surg, No Rad, Yes Chemo 9 ( 1.3)
No Surg, No Rad, No Chemo 81 ( 12.0)
Other 46 ( 6.8)
Rad, No Surg, Yes Chemo 5 ( 0.7)
Rad, No Surg, No Chemo 12 ( 1.8)
Rad then Surg, Yes Chemo 2 ( 0.3)
Rad then Surg, No Chemo 0 ( 0.0)
Rad before and after Surg, Yes Chemo 0 ( 0.0)
Rad before and after Surg, No Chemo 0 ( 0.0)
SURGERY_YN (%) No 115 ( 17.0)
Ukn 9 ( 1.3)
Yes 551 ( 81.6)
RADIATION_YN (%) No 466 ( 69.0)
Yes 202 ( 29.9)
NA 7 ( 1.0)
CHEMO_YN (%) No 563 ( 83.4)
Yes 74 ( 11.0)
Ukn 38 ( 5.6)
mets_at_dx (%) Bone 10 ( 1.5)
Brain 0 ( 0.0)
Liver 1 ( 0.1)
Lung 4 ( 0.6)
None/Other/Unk/NA 660 ( 97.8)
MEDICAID_EXPN_CODE (%) Early Expansion States (2010-13) 77 ( 11.4)
Jan 2014 Expansion States 207 ( 30.7)
Late Expansion States (> Jan 2014) 95 ( 14.1)
Non-Expansion State 261 ( 38.7)
Suppressed for Ages 0 - 39 35 ( 5.2)
EXPN_GROUP (%) Exclude 35 ( 5.2)
Post-Expansion 62 ( 9.2)
Pre-Expansion 578 ( 85.6)
preExpMedicare  <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))

    2-sample test for equality of proportions with continuity correction

data:  c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 0.18217, df = 1, p-value = 0.6695
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.1770938  0.1021970
sample estimates:
   prop 1    prop 2 
0.4948097 0.5322581 
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>% 
                            filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>% 
                             filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion 
prop.test(c(preExpNoInsurance, postExpNoInsurance), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
Chi-squared approximation may be incorrect

    2-sample test for equality of proportions with continuity correction

data:  c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 1.0225e-33, df = 1, p-value = 1
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.04843555  0.04620315
sample estimates:
    prop 1     prop 2 
0.03114187 0.03225806 
data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")

Kaplan Meier Analysis

All

uni_var(test_var = "All", data_imp = data)
_________________________________________________
   
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

      n  events  median 0.95LCL 0.95UCL 
    675     180     138     133      NA 

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    564      46    0.929  0.0102        0.909        0.949
   24    497      23    0.889  0.0127        0.864        0.914
   36    427      25    0.842  0.0151        0.813        0.872
   48    359      19    0.802  0.0169        0.770        0.836
   60    310      13    0.772  0.0183        0.737        0.808
  120     79      46    0.596  0.0282        0.543        0.653



   
## Univariable Cox Proportional Hazard Model for:  All

[1] "Only one level, no Cox model performed"




   
## Unadjusted Kaplan Meier Overall Survival Curve for:  All

Facility Type

uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
   
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

   35 observations deleted due to missingness 
                                                n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program       81     26    138     108      NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 296     83    134     108      NA
FACILITY_TYPE_F=Academic/Research Program     173     44     NA     137      NA
FACILITY_TYPE_F=Integrated Network Ca Program  90     26    133     128      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

35 observations deleted due to missingness 
                FACILITY_TYPE_F=Community Cancer Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     66       7    0.909  0.0328        0.847        0.976
   24     60       4    0.853  0.0411        0.776        0.937
   36     51       2    0.822  0.0449        0.739        0.915
   48     45       6    0.726  0.0543        0.627        0.840
   60     39       1    0.708  0.0558        0.607        0.826
  120     11       5    0.573  0.0722        0.448        0.734

                FACILITY_TYPE_F=Comprehensive Comm Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    244      23    0.918  0.0164        0.886        0.951
   24    210       9    0.882  0.0196        0.844        0.921
   36    172      13    0.824  0.0240        0.779        0.873
   48    141       6    0.794  0.0262        0.744        0.847
   60    121       6    0.758  0.0289        0.703        0.816
  120     30      23    0.540  0.0469        0.456        0.640

                FACILITY_TYPE_F=Academic/Research Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    146       9    0.946  0.0175        0.912        0.981
   24    128       7    0.899  0.0241        0.853        0.947
   36    118       5    0.862  0.0281        0.809        0.919
   48     99       5    0.824  0.0317        0.764        0.888
   60     87       3    0.798  0.0340        0.734        0.868
  120     24      14    0.605  0.0533        0.509        0.720

                FACILITY_TYPE_F=Integrated Network Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     76       7    0.919  0.0294        0.863        0.978
   24     70       3    0.882  0.0352        0.815        0.953
   36     59       4    0.828  0.0420        0.750        0.915
   48     51       2    0.799  0.0454        0.714        0.893
   60     43       3    0.749  0.0509        0.656        0.856
  120     10       4    0.648  0.0653        0.532        0.790




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_TYPE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

  n= 640, number of events= 179 
   (35 observations deleted due to missingness)

                                                  coef exp(coef)  se(coef)      z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program  0.001391  1.001392  0.225451  0.006    0.995
FACILITY_TYPE_FAcademic/Research Program     -0.223626  0.799614  0.247849 -0.902    0.367
FACILITY_TYPE_FIntegrated Network Ca Program -0.085972  0.917620  0.277593 -0.310    0.757

                                             exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program    1.0014     0.9986    0.6437     1.558
FACILITY_TYPE_FAcademic/Research Program        0.7996     1.2506    0.4919     1.300
FACILITY_TYPE_FIntegrated Network Ca Program    0.9176     1.0898    0.5326     1.581

Concordance= 0.525  (se = 0.022 )
Rsquare= 0.003   (max possible= 0.961 )
Likelihood ratio test= 1.63  on 3 df,   p=0.6515
Wald test            = 1.59  on 3 df,   p=0.6614
Score (logrank) test = 1.6  on 3 df,   p=0.66
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_TYPE_F

Facility Location

uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
   
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

   35 observations deleted due to missingness 
                                         n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England         31      7     NA    88.7      NA
FACILITY_LOCATION_F=Middle Atlantic     93     23    138   108.0      NA
FACILITY_LOCATION_F=South Atlantic     143     36    137   133.0      NA
FACILITY_LOCATION_F=East North Central 134     37    137   127.7      NA
FACILITY_LOCATION_F=East South Central  44     18    110    73.2      NA
FACILITY_LOCATION_F=West North Central  59     22    102    83.6      NA
FACILITY_LOCATION_F=West South Central  60     21    115    67.6      NA
FACILITY_LOCATION_F=Mountain            35      6     NA      NA      NA
FACILITY_LOCATION_F=Pacific             41      9     NA    94.5      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

35 observations deleted due to missingness 
                FACILITY_LOCATION_F=New England 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       3    0.895  0.0575        0.790         1.00
   24     21       0    0.895  0.0575        0.790         1.00
   36     16       1    0.843  0.0744        0.709         1.00
   48     13       2    0.737  0.0954        0.572         0.95
   60     12       0    0.737  0.0954        0.572         0.95
  120      5       1    0.664  0.1107        0.479         0.92

                FACILITY_LOCATION_F=Middle Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     77       6    0.933  0.0266        0.882        0.986
   24     67       3    0.895  0.0331        0.833        0.963
   36     62       0    0.895  0.0331        0.833        0.963
   48     51       5    0.820  0.0442        0.738        0.912
   60     46       1    0.804  0.0464        0.718        0.900
  120      9       7    0.597  0.0794        0.460        0.775

                FACILITY_LOCATION_F=South Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    123       5    0.963  0.0160        0.933        0.995
   24    104       7    0.906  0.0260        0.856        0.958
   36     87       4    0.869  0.0308        0.810        0.931
   48     75       4    0.827  0.0358        0.759        0.900
   60     64       4    0.781  0.0406        0.705        0.864
  120     19       8    0.624  0.0609        0.515        0.755

                FACILITY_LOCATION_F=East North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    114       8    0.938  0.0212        0.897        0.981
   24    103       5    0.896  0.0274        0.844        0.951
   36     93       5    0.851  0.0325        0.790        0.917
   48     76       6    0.792  0.0382        0.721        0.871
   60     64       3    0.760  0.0410        0.683        0.844
  120     17       7    0.646  0.0538        0.549        0.761

                FACILITY_LOCATION_F=East South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35       7    0.834  0.0572        0.729        0.954
   24     34       1    0.810  0.0604        0.700        0.938
   36     30       4    0.715  0.0696        0.591        0.865
   48     29       0    0.715  0.0696        0.591        0.865
   60     25       0    0.715  0.0696        0.591        0.865
  120      2       6    0.452  0.1102        0.280        0.729

                FACILITY_LOCATION_F=West North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     52       4    0.930  0.0339        0.866        0.999
   24     44       5    0.838  0.0496        0.746        0.941
   36     39       3    0.779  0.0566        0.675        0.898
   48     33       2    0.739  0.0604        0.629        0.867
   60     28       2    0.690  0.0654        0.573        0.831
  120      5       6    0.430  0.0973        0.276        0.670

                FACILITY_LOCATION_F=West South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     46       7    0.876  0.0439        0.794        0.966
   24     39       1    0.857  0.0469        0.770        0.954
   36     32       3    0.791  0.0567        0.687        0.910
   48     28       0    0.791  0.0567        0.687        0.910
   60     24       2    0.731  0.0665        0.612        0.874
  120      5       8    0.396  0.1016        0.239        0.655

                FACILITY_LOCATION_F=Mountain 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     28       3    0.911  0.0492        0.819        1.000
   24     26       0    0.911  0.0492        0.819        1.000
   36     22       2    0.838  0.0670        0.716        0.980
   48     16       0    0.838  0.0670        0.716        0.980
   60     15       0    0.838  0.0670        0.716        0.980
  120      8       1    0.768  0.0908        0.609        0.968

                FACILITY_LOCATION_F=Pacific 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     34       3    0.923  0.0429        0.842        1.000
   24     30       1    0.893  0.0508        0.799        0.998
   36     19       2    0.823  0.0670        0.701        0.965
   48     15       0    0.823  0.0670        0.701        0.965
   60     12       1    0.759  0.0867        0.607        0.950
  120      5       2    0.621  0.1133        0.435        0.888




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_LOCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

  n= 640, number of events= 179 
   (35 observations deleted due to missingness)

                                          coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic     0.07418   1.07700  0.43257  0.171    0.864
FACILITY_LOCATION_FSouth Atlantic      0.09900   1.10407  0.41366  0.239    0.811
FACILITY_LOCATION_FEast North Central  0.19621   1.21678  0.41332  0.475    0.635
FACILITY_LOCATION_FEast South Central  0.55115   1.73525  0.44683  1.233    0.217
FACILITY_LOCATION_FWest North Central  0.52098   1.68368  0.43483  1.198    0.231
FACILITY_LOCATION_FWest South Central  0.56765   1.76411  0.43685  1.299    0.194
FACILITY_LOCATION_FMountain           -0.32226   0.72451  0.55642 -0.579    0.562
FACILITY_LOCATION_FPacific             0.11805   1.12530  0.50497  0.234    0.815

                                      exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic       1.0770     0.9285    0.4613     2.514
FACILITY_LOCATION_FSouth Atlantic        1.1041     0.9057    0.4908     2.484
FACILITY_LOCATION_FEast North Central    1.2168     0.8218    0.5412     2.735
FACILITY_LOCATION_FEast South Central    1.7352     0.5763    0.7228     4.166
FACILITY_LOCATION_FWest North Central    1.6837     0.5939    0.7180     3.948
FACILITY_LOCATION_FWest South Central    1.7641     0.5669    0.7493     4.153
FACILITY_LOCATION_FMountain              0.7245     1.3802    0.2435     2.156
FACILITY_LOCATION_FPacific               1.1253     0.8887    0.4182     3.028

Concordance= 0.557  (se = 0.023 )
Rsquare= 0.015   (max possible= 0.961 )
Likelihood ratio test= 9.48  on 8 df,   p=0.3035
Wald test            = 9.52  on 8 df,   p=0.3002
Score (logrank) test = 9.75  on 8 df,   p=0.283
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_LOCATION_F

Facility Geography

uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
   
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

   35 observations deleted due to missingness 
                               n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 124     30     NA     138      NA
FACILITY_GEOGRAPHY=South     203     57    134     115      NA
FACILITY_GEOGRAPHY=Midwest   237     77    133     108      NA
FACILITY_GEOGRAPHY=West       76     15     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

35 observations deleted due to missingness 
                FACILITY_GEOGRAPHY=Northeast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    100       9    0.924  0.0244        0.877        0.973
   24     88       3    0.895  0.0287        0.841        0.953
   36     78       1    0.884  0.0305        0.826        0.946
   48     64       7    0.802  0.0404        0.727        0.886
   60     58       1    0.789  0.0417        0.712        0.876
  120     14       8    0.621  0.0640        0.508        0.760

                FACILITY_GEOGRAPHY=South 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    169      12    0.938  0.0174        0.904        0.972
   24    143       8    0.891  0.0232        0.847        0.937
   36    119       7    0.846  0.0276        0.793        0.901
   48    103       4    0.815  0.0305        0.758        0.877
   60     88       6    0.765  0.0348        0.700        0.837
  120     24      16    0.553  0.0548        0.455        0.671

                FACILITY_GEOGRAPHY=Midwest 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    201      19    0.916  0.0184        0.881        0.953
   24    181      11    0.865  0.0230        0.821        0.911
   36    162      12    0.806  0.0269        0.755        0.861
   48    138       8    0.765  0.0293        0.709        0.824
   60    117       5    0.735  0.0311        0.676        0.798
  120     24      19    0.548  0.0466        0.464        0.647

                FACILITY_GEOGRAPHY=West 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     62       6    0.917  0.0324        0.856        0.983
   24     56       1    0.901  0.0356        0.834        0.974
   36     41       4    0.831  0.0471        0.744        0.929
   48     31       0    0.831  0.0471        0.744        0.929
   60     27       1    0.801  0.0540        0.702        0.914
  120     13       3    0.695  0.0739        0.564        0.856




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_GEOGRAPHY

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

  n= 640, number of events= 179 
   (35 observations deleted due to missingness)

                             coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_GEOGRAPHYSouth    0.1907    1.2101   0.2256  0.845    0.398
FACILITY_GEOGRAPHYMidwest  0.3003    1.3502   0.2156  1.393    0.164
FACILITY_GEOGRAPHYWest    -0.1390    0.8702   0.3165 -0.439    0.661

                          exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth      1.2101     0.8264    0.7776     1.883
FACILITY_GEOGRAPHYMidwest    1.3502     0.7406    0.8849     2.060
FACILITY_GEOGRAPHYWest       0.8702     1.1491    0.4680     1.618

Concordance= 0.532  (se = 0.023 )
Rsquare= 0.006   (max possible= 0.961 )
Likelihood ratio test= 3.77  on 3 df,   p=0.2874
Wald test            = 3.6  on 3 df,   p=0.3076
Score (logrank) test = 3.64  on 3 df,   p=0.3033
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_GEOGRAPHY

Age Group

uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
   
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                 n events median 0.95LCL 0.95UCL
AGE_F=(0,54]   161     17     NA      NA      NA
AGE_F=(54,64]  149     28  137.0     134      NA
AGE_F=(64,74]  149     30  153.1     115      NA
AGE_F=(74,100] 216    105   73.2      60    93.4

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                AGE_F=(0,54] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    145       3    0.981  0.0109        0.960        1.000
   24    129       4    0.952  0.0176        0.918        0.988
   36    116       5    0.914  0.0239        0.868        0.962
   48    104       1    0.905  0.0251        0.857        0.956
   60     96       0    0.905  0.0251        0.857        0.956
  120     29       4    0.858  0.0334        0.795        0.926

                AGE_F=(54,64] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    121      11    0.921  0.0227        0.878        0.967
   24    108       3    0.898  0.0259        0.849        0.950
   36     94       2    0.881  0.0282        0.827        0.938
   48     75       4    0.840  0.0334        0.777        0.908
   60     68       1    0.829  0.0347        0.764        0.900
  120     20       4    0.737  0.0552        0.636        0.853

                AGE_F=(64,74] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    131       5    0.965  0.0152        0.936        0.996
   24    116       6    0.919  0.0235        0.874        0.966
   36    100       3    0.894  0.0268        0.843        0.948
   48     84       3    0.866  0.0306        0.808        0.928
   60     71       0    0.866  0.0306        0.808        0.928
  120     17      12    0.609  0.0719        0.483        0.767

                AGE_F=(74,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    167      27    0.867  0.0238        0.822        0.915
   24    144      10    0.813  0.0279        0.760        0.869
   36    117      15    0.724  0.0329        0.662        0.792
   48     96      11    0.653  0.0361        0.586        0.727
   60     75      12    0.565  0.0391        0.494        0.647
  120     13      26    0.301  0.0446        0.225        0.402




   
## Univariable Cox Proportional Hazard Model for:  AGE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

  n= 675, number of events= 180 

                coef exp(coef) se(coef)     z Pr(>|z|)    
AGE_F(54,64]  0.7831    2.1883   0.3086 2.537   0.0112 *  
AGE_F(64,74]  0.8140    2.2570   0.3039 2.678   0.0074 ** 
AGE_F(74,100] 1.9331    6.9109   0.2636 7.334 2.24e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64]      2.188     0.4570     1.195     4.007
AGE_F(64,74]      2.257     0.4431     1.244     4.095
AGE_F(74,100]     6.911     0.1447     4.123    11.585

Concordance= 0.666  (se = 0.023 )
Rsquare= 0.126   (max possible= 0.956 )
Likelihood ratio test= 90.86  on 3 df,   p=0
Wald test            = 82.35  on 3 df,   p=0
Score (logrank) test = 99.33  on 3 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_F

Age Group

uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
   
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                  n events median 0.95LCL 0.95UCL
AGE_40=(0,40]    38      1     NA      NA      NA
AGE_40=(40,100] 637    179    137     133      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                AGE_40=(0,40] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35       0    1.000  0.0000        1.000            1
   24     32       0    1.000  0.0000        1.000            1
   36     29       1    0.967  0.0328        0.905            1
   48     25       0    0.967  0.0328        0.905            1
   60     22       0    0.967  0.0328        0.905            1
  120      4       0    0.967  0.0328        0.905            1

                AGE_40=(40,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    529      46    0.924  0.0108        0.903        0.946
   24    465      23    0.882  0.0134        0.856        0.909
   36    398      24    0.834  0.0158        0.804        0.866
   48    334      19    0.792  0.0177        0.758        0.828
   60    288      13    0.760  0.0192        0.723        0.798
  120     75      46    0.577  0.0289        0.523        0.637




   
## Univariable Cox Proportional Hazard Model for:  AGE_40

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

  n= 675, number of events= 180 

                 coef exp(coef) se(coef)     z Pr(>|z|)  
AGE_40(40,100]  2.460    11.708    1.003 2.453   0.0142 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100]     11.71    0.08541      1.64     83.58

Concordance= 0.528  (se = 0.01 )
Rsquare= 0.023   (max possible= 0.956 )
Likelihood ratio test= 15.87  on 1 df,   p=6.772e-05
Wald test            = 6.02  on 1 df,   p=0.01416
Score (logrank) test = 9.74  on 1 df,   p=0.001805
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_40

Gender

uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
   
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

               n events median 0.95LCL 0.95UCL
SEX_F=Male    19      4     NA     101      NA
SEX_F=Female 656    176    153     133      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                SEX_F=Male 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     16       1    0.941  0.0571        0.836            1
   24     14       0    0.941  0.0571        0.836            1
   36     13       1    0.874  0.0837        0.724            1
   48     11       0    0.874  0.0837        0.724            1
   60     10       0    0.874  0.0837        0.724            1
  120      3       2    0.546  0.1938        0.273            1

                SEX_F=Female 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    548      45    0.928  0.0103        0.908        0.949
   24    483      23    0.887  0.0129        0.862        0.913
   36    414      24    0.841  0.0153        0.812        0.872
   48    348      19    0.800  0.0172        0.767        0.835
   60    300      13    0.769  0.0186        0.733        0.806
  120     76      44    0.598  0.0283        0.545        0.656




   
## Univariable Cox Proportional Hazard Model for:  SEX_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

  n= 675, number of events= 180 

              coef exp(coef) se(coef)    z Pr(>|z|)
SEX_FFemale 0.2633    1.3012   0.5059 0.52    0.603

            exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale     1.301     0.7685    0.4827     3.507

Concordance= 0.506  (se = 0.007 )
Rsquare= 0   (max possible= 0.956 )
Likelihood ratio test= 0.29  on 1 df,   p=0.5872
Wald test            = 0.27  on 1 df,   p=0.6028
Score (logrank) test = 0.27  on 1 df,   p=0.6018
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SEX_F

RACE_F

uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
   
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                   n events median 0.95LCL 0.95UCL
RACE_F=White     570    151  138.2   133.0      NA
RACE_F=Black      77     26   93.4    78.1      NA
RACE_F=Other/Unk  16      2     NA      NA      NA
RACE_F=Asian      12      1     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                RACE_F=White 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    479      36    0.934  0.0107        0.913        0.955
   24    424      19    0.895  0.0134        0.869        0.922
   36    364      21    0.849  0.0161        0.818        0.881
   48    301      18    0.804  0.0184        0.769        0.841
   60    256      12    0.770  0.0201        0.732        0.810
  120     70      37    0.601  0.0305        0.544        0.664

                RACE_F=Black 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     62       7    0.904  0.0344        0.839        0.974
   24     52       4    0.843  0.0437        0.761        0.933
   36     45       4    0.776  0.0515        0.681        0.884
   48     41       1    0.758  0.0534        0.660        0.870
   60     38       1    0.739  0.0552        0.639        0.856
  120      3       9    0.412  0.0975        0.259        0.655

                RACE_F=Other/Unk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13       2    0.867  0.0878        0.711            1
   24     13       0    0.867  0.0878        0.711            1
   36     11       0    0.867  0.0878        0.711            1
   48     11       0    0.867  0.0878        0.711            1
   60     11       0    0.867  0.0878        0.711            1
  120      5       0    0.867  0.0878        0.711            1

                RACE_F=Asian 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     10       1    0.909  0.0867        0.754            1
   24      8       0    0.909  0.0867        0.754            1
   36      7       0    0.909  0.0867        0.754            1
   48      6       0    0.909  0.0867        0.754            1
   60      5       0    0.909  0.0867        0.754            1
  120      1       0    0.909  0.0867        0.754            1




   
## Univariable Cox Proportional Hazard Model for:  RACE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

  n= 675, number of events= 180 

                   coef exp(coef) se(coef)      z Pr(>|z|)  
RACE_FBlack      0.4011    1.4935   0.2132  1.881   0.0599 .
RACE_FOther/Unk -1.1059    0.3309   0.7128 -1.551   0.1208  
RACE_FAsian     -0.9551    0.3848   1.0036 -0.952   0.3412  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack        1.4935     0.6696   0.98336     2.268
RACE_FOther/Unk    0.3309     3.0221   0.08183     1.338
RACE_FAsian        0.3848     2.5990   0.05382     2.751

Concordance= 0.529  (se = 0.015 )
Rsquare= 0.013   (max possible= 0.956 )
Likelihood ratio test= 8.51  on 3 df,   p=0.03653
Wald test            = 7.2  on 3 df,   p=0.06593
Score (logrank) test = 7.69  on 3 df,   p=0.05295
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RACE_F

Hispanic

uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
   
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                   n events median 0.95LCL 0.95UCL
HISPANIC=No      587    156    138     133      NA
HISPANIC=Yes      27      3     NA      NA      NA
HISPANIC=Unknown  61     21     NA     128      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                HISPANIC=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    485      40    0.928  0.0110        0.907        0.950
   24    427      21    0.886  0.0138        0.860        0.914
   36    366      22    0.838  0.0164        0.807        0.871
   48    306      16    0.800  0.0183        0.765        0.836
   60    261      12    0.767  0.0198        0.729        0.806
  120     64      39    0.579  0.0318        0.520        0.644

                HISPANIC=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     24       1    0.962  0.0377        0.890            1
   24     20       0    0.962  0.0377        0.890            1
   36     15       1    0.913  0.0590        0.805            1
   48     10       1    0.830  0.0956        0.663            1
   60      8       0    0.830  0.0956        0.663            1
  120      1       0    0.830  0.0956        0.663            1

                HISPANIC=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     55       5    0.918  0.0352        0.851        0.989
   24     50       2    0.883  0.0415        0.806        0.969
   36     46       2    0.847  0.0471        0.759        0.944
   48     43       2    0.810  0.0517        0.715        0.918
   60     41       1    0.790  0.0541        0.691        0.904
  120     14       7    0.643  0.0668        0.525        0.789




   
## Univariable Cox Proportional Hazard Model for:  HISPANIC

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

  n= 675, number of events= 180 

                    coef exp(coef) se(coef)      z Pr(>|z|)
HISPANICYes     -0.68962   0.50177  0.58325 -1.182    0.237
HISPANICUnknown -0.04505   0.95595  0.23390 -0.193    0.847

                exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes        0.5018      1.993    0.1600     1.574
HISPANICUnknown    0.9559      1.046    0.6044     1.512

Concordance= 0.507  (se = 0.014 )
Rsquare= 0.003   (max possible= 0.956 )
Likelihood ratio test= 1.78  on 2 df,   p=0.4117
Wald test            = 1.42  on 2 df,   p=0.4923
Score (logrank) test = 1.47  on 2 df,   p=0.4789
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  HISPANIC

Insurance Status

uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
   
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                               n events median 0.95LCL 0.95UCL
INSURANCE_F=Private          273     35     NA      NA      NA
INSURANCE_F=None              24     11   78.1    34.2      NA
INSURANCE_F=Medicaid          35      9     NA    89.8      NA
INSURANCE_F=Medicare         320    120   96.6    80.5     133
INSURANCE_F=Other Government   8      1     NA    74.3      NA
INSURANCE_F=Unknown           15      4     NA    73.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                INSURANCE_F=Private 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    234       9    0.965  0.0114        0.943        0.988
   24    209       6    0.940  0.0152        0.910        0.970
   36    191       3    0.926  0.0170        0.893        0.959
   48    164       4    0.906  0.0193        0.869        0.944
   60    154       0    0.906  0.0193        0.869        0.944
  120     48      10    0.804  0.0366        0.735        0.879

                INSURANCE_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     20       3    0.870  0.0702        0.742        1.000
   24     18       2    0.783  0.0860        0.631        0.971
   36     13       3    0.638  0.1030        0.465        0.876
   48     10       1    0.580  0.1087        0.402        0.838
   60      9       0    0.580  0.1087        0.402        0.838
  120      1       2    0.322  0.1563        0.125        0.834

                INSURANCE_F=Medicaid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     27       3    0.903  0.0533        0.804        1.000
   24     24       1    0.867  0.0622        0.753        0.998
   36     18       4    0.721  0.0844        0.573        0.907
   48     15       0    0.721  0.0844        0.573        0.907
   60     11       0    0.721  0.0844        0.573        0.907
  120      5       1    0.641  0.1065        0.462        0.887

                INSURANCE_F=Medicare 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    264      29    0.905  0.0167        0.873        0.939
   24    229      14    0.855  0.0206        0.815        0.896
   36    190      15    0.795  0.0242        0.749        0.844
   48    155      14    0.733  0.0274        0.682        0.789
   60    123      13    0.667  0.0305        0.610        0.730
  120     25      30    0.429  0.0419        0.354        0.520

                INSURANCE_F=Other Government 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       0        1       0            1            1
   24      7       0        1       0            1            1
   36      6       0        1       0            1            1
   48      6       0        1       0            1            1
   60      5       0        1       0            1            1

                INSURANCE_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11       2    0.867  0.0878        0.711            1
   24     10       0    0.867  0.0878        0.711            1
   36      9       0    0.867  0.0878        0.711            1
   48      9       0    0.867  0.0878        0.711            1
   60      8       0    0.867  0.0878        0.711            1




   
## Univariable Cox Proportional Hazard Model for:  INSURANCE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

  n= 675, number of events= 180 

                               coef exp(coef) se(coef)     z Pr(>|z|)    
INSURANCE_FNone             1.65037   5.20891  0.34718 4.754  2.0e-06 ***
INSURANCE_FMedicaid         0.91602   2.49931  0.37412 2.448   0.0143 *  
INSURANCE_FMedicare         1.33160   3.78708  0.19299 6.900  5.2e-12 ***
INSURANCE_FOther Government 0.03798   1.03871  1.01476 0.037   0.9701    
INSURANCE_FUnknown          1.09154   2.97886  0.52924 2.062   0.0392 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                            exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone                 5.209     0.1920    2.6377    10.286
INSURANCE_FMedicaid             2.499     0.4001    1.2005     5.203
INSURANCE_FMedicare             3.787     0.2641    2.5944     5.528
INSURANCE_FOther Government     1.039     0.9627    0.1421     7.590
INSURANCE_FUnknown              2.979     0.3357    1.0557     8.405

Concordance= 0.642  (se = 0.021 )
Rsquare= 0.09   (max possible= 0.956 )
Likelihood ratio test= 63.7  on 5 df,   p=2.086e-12
Wald test            = 52.65  on 5 df,   p=3.959e-10
Score (logrank) test = 60.62  on 5 df,   p=9.044e-12
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  INSURANCE_F

Overall Survival pre/post-ACA expansion

uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
   
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                            n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion  63     10     NA    54.2      NA
EXPN_GROUP=Pre-Expansion  601    172    138   133.0      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                EXPN_GROUP=Post-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     48       6    0.898  0.0396        0.823        0.979
   24     39       2    0.858  0.0468        0.771        0.955
   36     21       0    0.858  0.0468        0.771        0.955
   48     10       1    0.780  0.0857        0.629        0.968
   60      6       1    0.683  0.1181        0.486        0.958

                EXPN_GROUP=Pre-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    505      41    0.929  0.0108        0.908        0.950
   24    446      22    0.886  0.0135        0.860        0.913
   36    396      24    0.837  0.0161        0.806        0.869
   48    342      18    0.798  0.0178        0.764        0.833
   60    299      12    0.768  0.0191        0.732        0.807
  120     81      47    0.588  0.0284        0.535        0.646




   
## Univariable Cox Proportional Hazard Model for:  EXPN_GROUP

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

  n= 664, number of events= 182 

                            coef exp(coef) se(coef)      z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.08197   0.92130  0.33000 -0.248    0.804

                        exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion    0.9213      1.085    0.4825     1.759

Concordance= 0.504  (se = 0.011 )
Rsquare= 0   (max possible= 0.959 )
Likelihood ratio test= 0.06  on 1 df,   p=0.806
Wald test            = 0.06  on 1 df,   p=0.8038
Score (logrank) test = 0.06  on 1 df,   p=0.8038





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EXPN_GROUP

Education

uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
   
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

   4 observations deleted due to missingness 
                           n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more   99     32    107    73.2      NA
EDUCATION_F=13 - 20.9%   164     51    116    98.3      NA
EDUCATION_F=7 - 12.9%    222     57     NA   132.9      NA
EDUCATION_F=Less than 7% 186     40    153   136.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

4 observations deleted due to missingness 
                EDUCATION_F=21% or more 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     79       9    0.905  0.0302        0.848        0.966
   24     69       3    0.869  0.0355        0.802        0.941
   36     53       8    0.763  0.0469        0.676        0.861
   48     41       3    0.713  0.0520        0.618        0.823
   60     35       2    0.674  0.0559        0.573        0.793
  120      5       7    0.455  0.0839        0.317        0.653

                EDUCATION_F=13 - 20.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    134      13    0.916  0.0224        0.873        0.961
   24    113       9    0.852  0.0293        0.796        0.911
   36    100       4    0.820  0.0322        0.760        0.886
   48     80       6    0.769  0.0364        0.701        0.843
   60     66       3    0.739  0.0389        0.666        0.819
  120     13      15    0.482  0.0623        0.374        0.620

                EDUCATION_F=7 - 12.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    191      15    0.930  0.0175        0.896        0.965
   24    175       6    0.900  0.0208        0.860        0.942
   36    150       8    0.856  0.0249        0.809        0.906
   48    129       6    0.821  0.0277        0.769        0.877
   60    113       5    0.787  0.0304        0.730        0.849
  120     28      15    0.631  0.0457        0.547        0.727

                EDUCATION_F=Less than 7% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    157       9    0.949  0.0164        0.918        0.982
   24    138       5    0.917  0.0212        0.877        0.960
   36    123       5    0.883  0.0254        0.834        0.934
   48    108       4    0.853  0.0287        0.798        0.911
   60     95       3    0.828  0.0311        0.770        0.892
  120     33       9    0.716  0.0456        0.632        0.811




   
## Univariable Cox Proportional Hazard Model for:  EDUCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

  n= 671, number of events= 180 
   (4 observations deleted due to missingness)

                           coef exp(coef) se(coef)      z Pr(>|z|)   
EDUCATION_F13 - 20.9%   -0.1679    0.8454   0.2259 -0.743  0.45730   
EDUCATION_F7 - 12.9%    -0.4740    0.6225   0.2215 -2.140  0.03239 * 
EDUCATION_FLess than 7% -0.7328    0.4806   0.2389 -3.068  0.00216 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9%      0.8454      1.183    0.5430    1.3163
EDUCATION_F7 - 12.9%       0.6225      1.606    0.4033    0.9610
EDUCATION_FLess than 7%    0.4806      2.081    0.3009    0.7675

Concordance= 0.572  (se = 0.023 )
Rsquare= 0.018   (max possible= 0.956 )
Likelihood ratio test= 12.16  on 3 df,   p=0.006867
Wald test            = 12.15  on 3 df,   p=0.006897
Score (logrank) test = 12.46  on 3 df,   p=0.005956
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EDUCATION_F

Urban/Rural

uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
   
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

   18 observations deleted due to missingness 
              n events median 0.95LCL 0.95UCL
U_R_F=Metro 557    151    137     133      NA
U_R_F=Urban  88     24     NA     110      NA
U_R_F=Rural  12      3     NA      47      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

18 observations deleted due to missingness 
                U_R_F=Metro 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    462      42    0.921  0.0117        0.899        0.944
   24    407      19    0.882  0.0143        0.854        0.910
   36    350      19    0.839  0.0167        0.807        0.872
   48    300      12    0.808  0.0182        0.773        0.845
   60    262      12    0.775  0.0199        0.737        0.815
  120     63      39    0.595  0.0310        0.538        0.659

                U_R_F=Urban 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     78       3    0.964  0.0203        0.925        1.000
   24     71       3    0.926  0.0291        0.871        0.985
   36     61       5    0.858  0.0398        0.783        0.940
   48     45       6    0.768  0.0499        0.676        0.872
   60     37       1    0.748  0.0523        0.652        0.858
  120     13       6    0.593  0.0716        0.468        0.751

                U_R_F=Rural 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      9       1    0.900  0.0949        0.732            1
   24      8       0    0.900  0.0949        0.732            1
   36      6       1    0.771  0.1442        0.535            1
   48      4       1    0.617  0.1798        0.349            1
   60      4       0    0.617  0.1798        0.349            1
  120      1       0    0.617  0.1798        0.349            1




   
## Univariable Cox Proportional Hazard Model for:  U_R_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

  n= 657, number of events= 178 
   (18 observations deleted due to missingness)

               coef exp(coef) se(coef)      z Pr(>|z|)
U_R_FUrban -0.06257   0.93934  0.21994 -0.284    0.776
U_R_FRural  0.14133   1.15181  0.58359  0.242    0.809

           exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban    0.9393     1.0646    0.6104     1.446
U_R_FRural    1.1518     0.8682    0.3670     3.615

Concordance= 0.505  (se = 0.015 )
Rsquare= 0   (max possible= 0.957 )
Likelihood ratio test= 0.15  on 2 df,   p=0.9298
Wald test            = 0.15  on 2 df,   p=0.9291
Score (logrank) test = 0.15  on 2 df,   p=0.929
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  U_R_F

Class (treatment at performing facility)

uni_var(test_var = "CLASS_OF_CASE_F", data_imp = data)
_________________________________________________
   
## CLASS_OF_CASE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                                 n events median 0.95LCL 0.95UCL
CLASS_OF_CASE_F=Other_Facility  41      7     NA    93.4      NA
CLASS_OF_CASE_F=All_Part_Prim  634    173    138   133.0      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                CLASS_OF_CASE_F=Other_Facility 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     20       5    0.827  0.0714        0.698        0.979
   24     19       0    0.827  0.0714        0.698        0.979
   36     16       0    0.827  0.0714        0.698        0.979
   48     12       1    0.775  0.0835        0.628        0.958
   60     11       0    0.775  0.0835        0.628        0.958
  120      4       1    0.646  0.1370        0.426        0.979

                CLASS_OF_CASE_F=All_Part_Prim 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    544      41    0.933  0.0101        0.914        0.953
   24    478      23    0.892  0.0128        0.867        0.917
   36    411      25    0.843  0.0154        0.813        0.874
   48    347      18    0.804  0.0172        0.771        0.839
   60    299      13    0.772  0.0187        0.737        0.810
  120     75      45    0.594  0.0288        0.540        0.653




   
## Univariable Cox Proportional Hazard Model for:  CLASS_OF_CASE_F
Loglik converged before variable  1 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

  n= 675, number of events= 180 

                                  coef exp(coef)  se(coef)      z Pr(>|z|)
CLASS_OF_CASE_FAll_Part_Prim -0.000415  0.999585  0.385995 -0.001    0.999

                             exp(coef) exp(-coef) lower .95 upper .95
CLASS_OF_CASE_FAll_Part_Prim    0.9996          1    0.4691      2.13

Concordance= 0.506  (se = 0.008 )
Rsquare= 0   (max possible= 0.956 )
Likelihood ratio test= 0  on 1 df,   p=0.9991
Wald test            = 0  on 1 df,   p=0.9991
Score (logrank) test = 0  on 1 df,   p=0.9991
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CLASS_OF_CASE_F

Year

uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
   
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                        n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 45     16    153   134.1      NA
YEAR_OF_DIAGNOSIS=2005 63     20     NA   137.0      NA
YEAR_OF_DIAGNOSIS=2006 75     33    133    95.3      NA
YEAR_OF_DIAGNOSIS=2007 62     27    115   101.2      NA
YEAR_OF_DIAGNOSIS=2008 42     13     NA      NA      NA
YEAR_OF_DIAGNOSIS=2009 62     14     NA      NA      NA
YEAR_OF_DIAGNOSIS=2010 53     14     NA      NA      NA
YEAR_OF_DIAGNOSIS=2011 64     15     NA    73.8      NA
YEAR_OF_DIAGNOSIS=2012 47      8     NA    66.2      NA
YEAR_OF_DIAGNOSIS=2013 60     11     NA      NA      NA
YEAR_OF_DIAGNOSIS=2014 48      4     NA      NA      NA
YEAR_OF_DIAGNOSIS=2015 54      5     NA    28.4      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                YEAR_OF_DIAGNOSIS=2004 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     36       6    0.862  0.0523        0.766        0.971
   24     31       2    0.811  0.0606        0.700        0.939
   36     28       3    0.732  0.0696        0.608        0.882
   48     28       0    0.732  0.0696        0.608        0.882
   60     26       1    0.706  0.0719        0.578        0.862
  120     16       2    0.650  0.0764        0.516        0.818

                YEAR_OF_DIAGNOSIS=2005 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     58       5    0.921  0.0341        0.856        0.990
   24     49       3    0.870  0.0430        0.790        0.958
   36     45       2    0.833  0.0484        0.744        0.934
   48     43       0    0.833  0.0484        0.744        0.934
   60     43       0    0.833  0.0484        0.744        0.934
  120     28       6    0.702  0.0642        0.586        0.840

                YEAR_OF_DIAGNOSIS=2006 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     67       4    0.946  0.0262        0.896        0.999
   24     60       6    0.861  0.0409        0.784        0.945
   36     57       2    0.832  0.0443        0.749        0.924
   48     53       3    0.788  0.0487        0.698        0.889
   60     52       0    0.788  0.0487        0.698        0.889
  120     26      16    0.524  0.0630        0.414        0.663

                YEAR_OF_DIAGNOSIS=2007 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     56       6    0.903  0.0375        0.833        0.980
   24     54       1    0.887  0.0402        0.812        0.969
   36     48       6    0.789  0.0521        0.693        0.898
   48     43       2    0.756  0.0549        0.655        0.871
   60     40       2    0.720  0.0579        0.615        0.843
  120      9      10    0.496  0.0734        0.371        0.663

                YEAR_OF_DIAGNOSIS=2008 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37       4    0.902  0.0463        0.816        0.998
   24     36       1    0.878  0.0511        0.783        0.984
   36     34       0    0.878  0.0511        0.783        0.984
   48     31       3    0.801  0.0632        0.686        0.935
   60     30       1    0.775  0.0662        0.655        0.916

                YEAR_OF_DIAGNOSIS=2009 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     54       3    0.950  0.0281        0.896        1.000
   24     51       2    0.914  0.0368        0.845        0.989
   36     47       0    0.914  0.0368        0.845        0.989
   48     40       4    0.834  0.0509        0.740        0.940
   60     36       1    0.812  0.0541        0.713        0.925

                YEAR_OF_DIAGNOSIS=2010 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     41       3    0.941  0.0330        0.879        1.000
   24     40       1    0.918  0.0394        0.844        0.999
   36     37       3    0.849  0.0528        0.752        0.959
   48     34       3    0.780  0.0617        0.668        0.911
   60     31       2    0.735  0.0661        0.616        0.876

                YEAR_OF_DIAGNOSIS=2011 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     59       2    0.968  0.0225        0.925        1.000
   24     56       2    0.935  0.0316        0.875        0.999
   36     50       4    0.867  0.0438        0.785        0.957
   48     45       2    0.830  0.0490        0.740        0.932
   60     39       4    0.753  0.0579        0.647        0.875

                YEAR_OF_DIAGNOSIS=2012 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     41       2    0.953  0.0321        0.893        1.000
   24     39       0    0.953  0.0321        0.893        1.000
   36     34       3    0.879  0.0506        0.786        0.985
   48     30       0    0.879  0.0506        0.786        0.985
   60     13       2    0.821  0.0619        0.708        0.952

                YEAR_OF_DIAGNOSIS=2013 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     45       5    0.907  0.0398        0.832        0.988
   24     37       3    0.841  0.0521        0.744        0.949
   36     34       1    0.817  0.0556        0.715        0.934
   48     12       2    0.749  0.0704        0.622        0.900

                YEAR_OF_DIAGNOSIS=2014 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     32       3    0.931  0.0385        0.859            1
   24     28       1    0.899  0.0487        0.808            1
   36     13       0    0.899  0.0487        0.808            1

                YEAR_OF_DIAGNOSIS=2015 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     38       3    0.937  0.0354        0.870            1
   24     16       1    0.907  0.0448        0.824            1




   
## Univariable Cox Proportional Hazard Model for:  YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

  n= 675, number of events= 180 

                          coef exp(coef) se(coef)      z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 -0.15599   0.85557  0.34183 -0.456    0.648
YEAR_OF_DIAGNOSIS2006  0.33535   1.39843  0.31703  1.058    0.290
YEAR_OF_DIAGNOSIS2007  0.36223   1.43653  0.33044  1.096    0.273
YEAR_OF_DIAGNOSIS2008  0.01742   1.01758  0.38687  0.045    0.964
YEAR_OF_DIAGNOSIS2009 -0.07927   0.92379  0.38114 -0.208    0.835
YEAR_OF_DIAGNOSIS2010  0.18053   1.19786  0.38188  0.473    0.636
YEAR_OF_DIAGNOSIS2011  0.11601   1.12301  0.37783  0.307    0.759
YEAR_OF_DIAGNOSIS2012 -0.06744   0.93479  0.44973 -0.150    0.881
YEAR_OF_DIAGNOSIS2013  0.32908   1.38968  0.41173  0.799    0.424
YEAR_OF_DIAGNOSIS2014 -0.22881   0.79548  0.57472 -0.398    0.691
YEAR_OF_DIAGNOSIS2015  0.08046   1.08379  0.53305  0.151    0.880
YEAR_OF_DIAGNOSIS2016       NA        NA  0.00000     NA       NA

                      exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005    0.8556     1.1688    0.4378     1.672
YEAR_OF_DIAGNOSIS2006    1.3984     0.7151    0.7512     2.603
YEAR_OF_DIAGNOSIS2007    1.4365     0.6961    0.7517     2.745
YEAR_OF_DIAGNOSIS2008    1.0176     0.9827    0.4767     2.172
YEAR_OF_DIAGNOSIS2009    0.9238     1.0825    0.4377     1.950
YEAR_OF_DIAGNOSIS2010    1.1979     0.8348    0.5667     2.532
YEAR_OF_DIAGNOSIS2011    1.1230     0.8905    0.5355     2.355
YEAR_OF_DIAGNOSIS2012    0.9348     1.0698    0.3872     2.257
YEAR_OF_DIAGNOSIS2013    1.3897     0.7196    0.6201     3.114
YEAR_OF_DIAGNOSIS2014    0.7955     1.2571    0.2579     2.454
YEAR_OF_DIAGNOSIS2015    1.0838     0.9227    0.3812     3.081
YEAR_OF_DIAGNOSIS2016        NA         NA        NA        NA

Concordance= 0.542  (se = 0.023 )
Rsquare= 0.01   (max possible= 0.956 )
Likelihood ratio test= 6.71  on 11 df,   p=0.8218
Wald test            = 6.66  on 11 df,   p=0.8259
Score (logrank) test = 6.75  on 11 df,   p=0.8187
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.

Primary Site

uni_var(test_var = "SITE_TEXT.y", data_imp = data)
_________________________________________________
   
## SITE_TEXT.y
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT.y, data = data)

                                                 n events median 0.95LCL 0.95UCL
SITE_TEXT.y=C50.0 Nipple                       448    104  153.1   133.0      NA
SITE_TEXT.y=C50.1 Central portion of breast     46     10     NA      NA      NA
SITE_TEXT.y=C50.2 Upper-inner quadrant breast    7      1     NA    77.3      NA
SITE_TEXT.y=C50.3 Lower-inner quadrant breast    5      3   18.8    18.8      NA
SITE_TEXT.y=C50.4 Upper-outer quadrant breast   44     18  136.8    35.9      NA
SITE_TEXT.y=C50.5 Lower-outer quadrant           8      3     NA    29.6      NA
SITE_TEXT.y=C50.6 Axillary tail of breast        2      0     NA      NA      NA
SITE_TEXT.y=C50.8 Overlapping lesion of breast  33     10     NA    93.4      NA
SITE_TEXT.y=C50.9 Breast NOS                    82     31   88.7    71.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT.y, data = data)

                SITE_TEXT.y=C50.0 Nipple 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    380      19    0.955  0.0100        0.936        0.975
   24    337      11    0.927  0.0129        0.902        0.952
   36    288      14    0.886  0.0163        0.855        0.919
   48    244      11    0.851  0.0188        0.814        0.888
   60    209      11    0.810  0.0216        0.769        0.853
  120     56      31    0.628  0.0347        0.564        0.700

                SITE_TEXT.y=C50.1 Central portion of breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     38       3    0.928  0.0399        0.853        1.000
   24     37       0    0.928  0.0399        0.853        1.000
   36     36       0    0.928  0.0399        0.853        1.000
   48     31       5    0.799  0.0636        0.684        0.934
   60     25       1    0.770  0.0678        0.648        0.915
  120      6       1    0.731  0.0745        0.599        0.893

                SITE_TEXT.y=C50.2 Upper-inner quadrant breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7       0    1.000   0.000          1.0            1
   24      7       0    1.000   0.000          1.0            1
   36      7       0    1.000   0.000          1.0            1
   48      6       0    1.000   0.000          1.0            1
   60      5       0    1.000   0.000          1.0            1
  120      1       1    0.667   0.272          0.3            1

                SITE_TEXT.y=C50.3 Lower-inner quadrant breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      4       1      0.8   0.179       0.5161            1
   24      1       1      0.4   0.297       0.0935            1
   36      1       0      0.4   0.297       0.0935            1
   48      1       0      0.4   0.297       0.0935            1

                SITE_TEXT.y=C50.4 Upper-outer quadrant breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37       7    0.841  0.0551        0.739        0.956
   24     34       2    0.794  0.0612        0.683        0.924
   36     25       7    0.620  0.0752        0.489        0.787
   48     22       0    0.620  0.0752        0.489        0.787
   60     22       0    0.620  0.0752        0.489        0.787
  120      7       1    0.586  0.0785        0.451        0.762

                SITE_TEXT.y=C50.5 Lower-outer quadrant 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7       0    1.000   0.000        1.000            1
   24      7       0    1.000   0.000        1.000            1
   36      4       3    0.571   0.187        0.301            1
   48      4       0    0.571   0.187        0.301            1
   60      2       0    0.571   0.187        0.301            1
  120      1       0    0.571   0.187        0.301            1

                SITE_TEXT.y=C50.6 Axillary tail of breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      2       0        1       0            1            1

                SITE_TEXT.y=C50.8 Overlapping lesion of breast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       3    0.909  0.0500        0.816        1.000
   24     24       3    0.808  0.0707        0.681        0.959
   36     20       0    0.808  0.0707        0.681        0.959
   48     13       2    0.709  0.0908        0.551        0.911
   60     12       0    0.709  0.0908        0.551        0.911
  120      4       2    0.506  0.1373        0.297        0.861

                SITE_TEXT.y=C50.9 Breast NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     59      13    0.828  0.0435        0.747        0.918
   24     48       6    0.741  0.0514        0.647        0.849
   36     44       1    0.726  0.0527        0.629        0.837
   48     36       1    0.709  0.0541        0.610        0.823
   60     33       0    0.709  0.0541        0.610        0.823
  120      4      10    0.338  0.1023        0.187        0.612




   
## Univariable Cox Proportional Hazard Model for:  SITE_TEXT.y
Loglik converged before variable  6 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT.y, data = data)

  n= 675, number of events= 180 

                                                    coef  exp(coef)   se(coef)      z Pr(>|z|)    
SITE_TEXT.yC50.1 Central portion of breast    -1.252e-01  8.823e-01  3.313e-01 -0.378  0.70556    
SITE_TEXT.yC50.2 Upper-inner quadrant breast  -6.317e-01  5.317e-01  1.005e+00 -0.629  0.52966    
SITE_TEXT.yC50.3 Lower-inner quadrant breast   1.919e+00  6.817e+00  5.908e-01  3.249  0.00116 ** 
SITE_TEXT.yC50.4 Upper-outer quadrant breast   5.122e-01  1.669e+00  2.558e-01  2.002  0.04523 *  
SITE_TEXT.yC50.5 Lower-outer quadrant          5.883e-01  1.801e+00  5.864e-01  1.003  0.31574    
SITE_TEXT.yC50.6 Axillary tail of breast      -1.437e+01  5.719e-07  1.585e+03 -0.009  0.99277    
SITE_TEXT.yC50.8 Overlapping lesion of breast  3.773e-01  1.458e+00  3.314e-01  1.139  0.25484    
SITE_TEXT.yC50.9 Breast NOS                    8.129e-01  2.254e+00  2.060e-01  3.946 7.95e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                              exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXT.yC50.1 Central portion of breast    8.823e-01  1.133e+00   0.46091     1.689
SITE_TEXT.yC50.2 Upper-inner quadrant breast  5.317e-01  1.881e+00   0.07414     3.812
SITE_TEXT.yC50.3 Lower-inner quadrant breast  6.817e+00  1.467e-01   2.14168    21.701
SITE_TEXT.yC50.4 Upper-outer quadrant breast  1.669e+00  5.991e-01   1.01094     2.756
SITE_TEXT.yC50.5 Lower-outer quadrant         1.801e+00  5.553e-01   0.57063     5.684
SITE_TEXT.yC50.6 Axillary tail of breast      5.719e-07  1.749e+06   0.00000       Inf
SITE_TEXT.yC50.8 Overlapping lesion of breast 1.458e+00  6.857e-01   0.76172     2.792
SITE_TEXT.yC50.9 Breast NOS                   2.254e+00  4.436e-01   1.50550     3.376

Concordance= 0.603  (se = 0.02 )
Rsquare= 0.037   (max possible= 0.956 )
Likelihood ratio test= 25.21  on 8 df,   p=0.001434
Wald test            = 28.16  on 8 df,   p=0.0004456
Score (logrank) test = 32.82  on 8 df,   p=6.633e-05
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 9 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SITE_TEXT.y

Histology

#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)

Grade

uni_var(test_var = "GRADE_F", data_imp = data)
_________________________________________________
   
## GRADE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

                                   n events median 0.95LCL 0.95UCL
GRADE_F=Gr I: Well Diff           22      7  132.9    93.4      NA
GRADE_F=Gr II: Mod Diff           55     14     NA   116.2      NA
GRADE_F=Gr III: Poor Diff        106     39  136.8    73.2      NA
GRADE_F=Gr IV: Undiff/Anaplastic   2      1   35.9      NA      NA
GRADE_F=NA/Unkown                490    119  153.1   134.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

                GRADE_F=Gr I: Well Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     21       1    0.955  0.0444        0.871        1.000
   24     18       1    0.904  0.0645        0.786        1.000
   36     15       1    0.854  0.0781        0.714        1.000
   48     14       0    0.854  0.0781        0.714        1.000
   60      9       1    0.793  0.0933        0.630        0.999
  120      2       2    0.566  0.1509        0.336        0.955

                GRADE_F=Gr II: Mod Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     49       4    0.925  0.0361        0.857        0.998
   24     44       1    0.905  0.0404        0.829        0.988
   36     36       4    0.820  0.0547        0.719        0.934
   48     31       0    0.820  0.0547        0.719        0.934
   60     27       0    0.820  0.0547        0.719        0.934
  120      5       5    0.564  0.1223        0.369        0.863

                GRADE_F=Gr III: Poor Diff 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     92      10    0.903  0.0292        0.848        0.962
   24     81       7    0.833  0.0370        0.763        0.909
   36     71       5    0.779  0.0417        0.702        0.865
   48     57       7    0.701  0.0469        0.615        0.799
   60     48       3    0.663  0.0492        0.573        0.767
  120     13       6    0.557  0.0574        0.455        0.681

                GRADE_F=Gr IV: Undiff/Anaplastic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      1       0        1       0            1            1

                GRADE_F=NA/Unkown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    400      31    0.933  0.0116        0.911        0.956
   24    353      14    0.899  0.0143        0.871        0.928
   36    305      14    0.862  0.0169        0.829        0.895
   48    257      12    0.826  0.0191        0.789        0.864
   60    226       9    0.795  0.0210        0.755        0.837
  120     59      33    0.613  0.0336        0.551        0.683




   
## Univariable Cox Proportional Hazard Model for:  GRADE_F
X matrix deemed to be singular; variable 4 5 6 7
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ GRADE_F, data = data)

  n= 675, number of events= 180 

                                   coef exp(coef) se(coef)      z Pr(>|z|)
GRADE_FGr II: Mod Diff          -0.1592    0.8528   0.4640 -0.343    0.731
GRADE_FGr III: Poor Diff         0.2431    1.2752   0.4112  0.591    0.554
GRADE_FGr IV: Undiff/Anaplastic  1.2910    3.6363   1.0721  1.204    0.229
GRADE_F5                             NA        NA   0.0000     NA       NA
GRADE_F6                             NA        NA   0.0000     NA       NA
GRADE_F7                             NA        NA   0.0000     NA       NA
GRADE_F8                             NA        NA   0.0000     NA       NA
GRADE_FNA/Unkown                -0.1821    0.8335   0.3898 -0.467    0.640

                                exp(coef) exp(-coef) lower .95 upper .95
GRADE_FGr II: Mod Diff             0.8528     1.1726    0.3435     2.117
GRADE_FGr III: Poor Diff           1.2752     0.7842    0.5696     2.855
GRADE_FGr IV: Undiff/Anaplastic    3.6363     0.2750    0.4447    29.735
GRADE_F5                               NA         NA        NA        NA
GRADE_F6                               NA         NA        NA        NA
GRADE_F7                               NA         NA        NA        NA
GRADE_F8                               NA         NA        NA        NA
GRADE_FNA/Unkown                   0.8335     1.1998    0.3882     1.790

Concordance= 0.543  (se = 0.019 )
Rsquare= 0.009   (max possible= 0.956 )
Likelihood ratio test= 6.3  on 4 df,   p=0.178
Wald test            = 7.29  on 4 df,   p=0.1215
Score (logrank) test = 7.7  on 4 df,   p=0.1032
Removed 5 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  GRADE_F

Clinical T Stage

#uni_var(test_var = "TNM_CLIN_T", data_imp = data)

Clinical N Stage

#uni_var(test_var = "TNM_CLIN_N", data_imp = data)

Clinical M Stage

#uni_var(test_var = "TNM_CLIN_M", data_imp = data)

Clinical Stage Group

uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                          n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=0  333     74     NA  138.22      NA
TNM_CLIN_STAGE_GROUP=1   39      5     NA  132.99      NA
TNM_CLIN_STAGE_GROUP=1A  32      3     NA      NA      NA
TNM_CLIN_STAGE_GROUP=1B   1      0     NA      NA      NA
TNM_CLIN_STAGE_GROUP=2A  23      6     NA      NA      NA
TNM_CLIN_STAGE_GROUP=2B  13      5  71.03   69.68      NA
TNM_CLIN_STAGE_GROUP=3    2      1   7.33    7.33      NA
TNM_CLIN_STAGE_GROUP=3A   7      3 116.17   50.99      NA
TNM_CLIN_STAGE_GROUP=3B  12      9  24.42    4.50      NA
TNM_CLIN_STAGE_GROUP=3C   3      2  42.15    4.21      NA
TNM_CLIN_STAGE_GROUP=4   27     22  14.00    8.34    26.6
TNM_CLIN_STAGE_GROUP=99 183     50 153.13  134.08      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                TNM_CLIN_STAGE_GROUP=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    280      10    0.968  0.0101        0.948        0.988
   24    250      11    0.928  0.0151        0.899        0.958
   36    218       7    0.901  0.0179        0.867        0.937
   48    175      14    0.839  0.0231        0.795        0.885
   60    143       6    0.808  0.0255        0.759        0.859
  120     25      25    0.585  0.0464        0.501        0.683

                TNM_CLIN_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     38       0    1.000  0.0000        1.000            1
   24     34       0    1.000  0.0000        1.000            1
   36     32       0    1.000  0.0000        1.000            1
   48     26       0    1.000  0.0000        1.000            1
   60     24       2    0.923  0.0523        0.826            1
  120     12       1    0.877  0.0670        0.755            1

                TNM_CLIN_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       0    1.000  0.0000        1.000            1
   24     26       0    1.000  0.0000        1.000            1
   36     21       2    0.916  0.0567        0.812            1
   48     19       0    0.916  0.0567        0.812            1
   60     16       0    0.916  0.0567        0.812            1

                TNM_CLIN_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                TNM_CLIN_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     19       4    0.826  0.0790        0.685        0.996
   24     15       1    0.774  0.0894        0.618        0.971
   36     12       1    0.719  0.0986        0.550        0.941
   48     11       0    0.719  0.0986        0.550        0.941
   60      8       0    0.719  0.0986        0.550        0.941
  120      2       0    0.719  0.0986        0.550        0.941

                TNM_CLIN_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11       1    0.923  0.0739        0.789            1
   24     10       1    0.839  0.1045        0.657            1
   36      8       1    0.746  0.1279        0.533            1
   48      7       0    0.746  0.1279        0.533            1
   60      6       0    0.746  0.1279        0.533            1

                TNM_CLIN_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       1      0.5   0.354        0.125            1
   24      1       0      0.5   0.354        0.125            1
   36      1       0      0.5   0.354        0.125            1

                TNM_CLIN_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       1    0.857   0.132       0.6334            1
   24      6       0    0.857   0.132       0.6334            1
   36      6       0    0.857   0.132       0.6334            1
   48      5       0    0.857   0.132       0.6334            1
   60      4       1    0.686   0.186       0.4026            1
  120      1       1    0.343   0.260       0.0777            1

                TNM_CLIN_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7       5    0.583   0.142        0.362        0.941
   24      6       1    0.500   0.144        0.284        0.880
   36      5       1    0.417   0.142        0.213        0.814
   48      3       1    0.333   0.136        0.150        0.742
   60      3       0    0.333   0.136        0.150        0.742

                TNM_CLIN_STAGE_GROUP=3C 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       1    0.667   0.272       0.2995            1
   24      2       0    0.667   0.272       0.2995            1
   36      2       0    0.667   0.272       0.2995            1
   48      1       1    0.333   0.272       0.0673            1
   60      1       0    0.333   0.272       0.0673            1

                TNM_CLIN_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15      11    0.578  0.0968       0.4160        0.802
   24      7       7    0.292  0.0914       0.1582        0.539
   36      3       4    0.125  0.0672       0.0437        0.359
   48      1       0    0.125  0.0672       0.0437        0.359
   60      1       0    0.125  0.0672       0.0437        0.359

                TNM_CLIN_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    154      12    0.932  0.0189        0.896        0.970
   24    139       2    0.920  0.0206        0.880        0.961
   36    118       9    0.857  0.0278        0.805        0.914
   48    110       3    0.835  0.0298        0.779        0.896
   60    103       4    0.804  0.0326        0.743        0.871
  120     39      15    0.646  0.0457        0.562        0.742




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_STAGE_GROUP
Loglik converged before variable  3 ; beta may be infinite. X matrix deemed to be singular; variable 4 5 8 14 15 16 18
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

  n= 675, number of events= 180 

                              coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_CLIN_STAGE_GROUP1   -9.685e-01  3.797e-01  4.634e-01 -2.090   0.0366 *  
TNM_CLIN_STAGE_GROUP1A  -7.286e-01  4.826e-01  5.899e-01 -1.235   0.2168    
TNM_CLIN_STAGE_GROUP1B  -1.306e+01  2.128e-06  1.445e+03 -0.009   0.9928    
TNM_CLIN_STAGE_GROUP1C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP2           NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP2A   2.323e-01  1.261e+00  4.249e-01  0.547   0.5846    
TNM_CLIN_STAGE_GROUP2B   7.265e-01  2.068e+00  4.631e-01  1.569   0.1167    
TNM_CLIN_STAGE_GROUP2C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP3    1.660e+00  5.260e+00  1.009e+00  1.645   0.1001    
TNM_CLIN_STAGE_GROUP3A   5.081e-01  1.662e+00  5.896e-01  0.862   0.3888    
TNM_CLIN_STAGE_GROUP3B   1.745e+00  5.729e+00  3.542e-01  4.928 8.29e-07 ***
TNM_CLIN_STAGE_GROUP3C   1.136e+00  3.115e+00  7.176e-01  1.583   0.1133    
TNM_CLIN_STAGE_GROUP4    2.501e+00  1.220e+01  2.554e-01  9.793  < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP4B          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP4C          NA         NA  0.000e+00     NA       NA    
TNM_CLIN_STAGE_GROUP99  -5.359e-02  9.478e-01  1.853e-01 -0.289   0.7725    
TNM_CLIN_STAGE_GROUPN_A         NA         NA  0.000e+00     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1   3.797e-01  2.634e+00    0.1531    0.9416
TNM_CLIN_STAGE_GROUP1A  4.826e-01  2.072e+00    0.1519    1.5334
TNM_CLIN_STAGE_GROUP1B  2.128e-06  4.699e+05    0.0000       Inf
TNM_CLIN_STAGE_GROUP1C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2          NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2A  1.261e+00  7.927e-01    0.5485    2.9010
TNM_CLIN_STAGE_GROUP2B  2.068e+00  4.836e-01    0.8343    5.1252
TNM_CLIN_STAGE_GROUP2C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP3   5.260e+00  1.901e-01    0.7273   38.0386
TNM_CLIN_STAGE_GROUP3A  1.662e+00  6.016e-01    0.5234    5.2791
TNM_CLIN_STAGE_GROUP3B  5.729e+00  1.746e-01    2.8614   11.4690
TNM_CLIN_STAGE_GROUP3C  3.115e+00  3.210e-01    0.7632   12.7132
TNM_CLIN_STAGE_GROUP4   1.220e+01  8.199e-02    7.3934   20.1202
TNM_CLIN_STAGE_GROUP4A         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP4B         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP4C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP99  9.478e-01  1.055e+00    0.6591    1.3630
TNM_CLIN_STAGE_GROUPN_A        NA         NA        NA        NA

Concordance= 0.655  (se = 0.022 )
Rsquare= 0.132   (max possible= 0.956 )
Likelihood ratio test= 95.51  on 11 df,   p=1.332e-15
Wald test            = 134.5  on 11 df,   p=0
Score (logrank) test = 211.1  on 11 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 8 rows containing missing values (geom_errorbar).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 12.

Pathologic T Stage

#uni_var(test_var = "TNM_PATH_T", data_imp = data)

Pathologic N Stage

#uni_var(test_var = "TNM_PATH_N", data_imp = data)

Pathologic M Stage

#uni_var(test_var = "TNM_PATH_M", data_imp = data)

Pathologic Stage Group

uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

   40 observations deleted due to missingness 
                          n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=0  298     58  153.1  138.22      NA
TNM_PATH_STAGE_GROUP=1   55     10     NA  136.77      NA
TNM_PATH_STAGE_GROUP=1A  26      2     NA   73.79      NA
TNM_PATH_STAGE_GROUP=1B   2      0     NA      NA      NA
TNM_PATH_STAGE_GROUP=2    3      0     NA      NA      NA
TNM_PATH_STAGE_GROUP=2A  21      6     NA      NA      NA
TNM_PATH_STAGE_GROUP=2B   8      2  132.9   75.17      NA
TNM_PATH_STAGE_GROUP=3A   4      2   93.6   71.03      NA
TNM_PATH_STAGE_GROUP=3B   6      2     NA   19.65      NA
TNM_PATH_STAGE_GROUP=3C   5      4   10.1    8.15      NA
TNM_PATH_STAGE_GROUP=4    9      7   14.9   12.06      NA
TNM_PATH_STAGE_GROUP=99 198     77  107.9   83.94      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

40 observations deleted due to missingness 
                TNM_PATH_STAGE_GROUP=0 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    258       7    0.975 0.00936        0.957        0.993
   24    239       3    0.963 0.01139        0.941        0.986
   36    209       7    0.934 0.01556        0.904        0.965
   48    172       9    0.890 0.02059        0.851        0.931
   60    144       7    0.850 0.02452        0.804        0.900
  120     33      22    0.636 0.04660        0.551        0.734

                TNM_PATH_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     53       0    1.000  0.0000        1.000        1.000
   24     51       0    1.000  0.0000        1.000        1.000
   36     50       0    1.000  0.0000        1.000        1.000
   48     43       1    0.979  0.0206        0.940        1.000
   60     40       2    0.934  0.0371        0.864        1.000
  120     15       6    0.768  0.0694        0.643        0.917

                TNM_PATH_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     24       0     1.00  0.0000        1.000            1
   24     21       0     1.00  0.0000        1.000            1
   36     16       1     0.95  0.0487        0.859            1
   48     15       0     0.95  0.0487        0.859            1
   60     11       0     0.95  0.0487        0.859            1

                TNM_PATH_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      1       0        1       0            1            1

                TNM_PATH_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       0        1       0            1            1
   24      3       0        1       0            1            1
   36      3       0        1       0            1            1
   48      3       0        1       0            1            1
   60      3       0        1       0            1            1
  120      1       0        1       0            1            1

                TNM_PATH_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     19       2    0.905  0.0641        0.788        1.000
   24     17       1    0.854  0.0778        0.715        1.000
   36     13       3    0.694  0.1046        0.517        0.933
   48     13       0    0.694  0.1046        0.517        0.933
   60     12       0    0.694  0.1046        0.517        0.933
  120      4       0    0.694  0.1046        0.517        0.933

                TNM_PATH_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       0    1.000   0.000          1.0            1
   24      6       0    1.000   0.000          1.0            1
   36      6       0    1.000   0.000          1.0            1
   48      5       0    1.000   0.000          1.0            1
   60      5       0    1.000   0.000          1.0            1
  120      1       1    0.667   0.272          0.3            1

                TNM_PATH_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      4       0        1       0            1            1
   24      4       0        1       0            1            1
   36      4       0        1       0            1            1
   48      3       0        1       0            1            1
   60      3       0        1       0            1            1

                TNM_PATH_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       1    0.833   0.152        0.583            1
   24      4       1    0.667   0.192        0.379            1
   36      4       0    0.667   0.192        0.379            1
   48      2       0    0.667   0.192        0.379            1
   60      2       0    0.667   0.192        0.379            1

                TNM_PATH_STAGE_GROUP=3C 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
      12.000        2.000        3.000        0.400        0.219        0.137        1.000 

                TNM_PATH_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7       2    0.778   0.139       0.5485        1.000
   24      3       4    0.333   0.157       0.1323        0.840
   36      2       1    0.222   0.139       0.0655        0.754
   48      1       0    0.222   0.139       0.0655        0.754
   60      1       0    0.222   0.139       0.0655        0.754

                TNM_PATH_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    149      29    0.846  0.0264        0.795        0.899
   24    125      11    0.780  0.0310        0.721        0.843
   36    104      10    0.713  0.0348        0.648        0.784
   48     90       7    0.664  0.0370        0.595        0.740
   60     80       4    0.633  0.0383        0.562        0.713
  120     25      13    0.498  0.0457        0.416        0.596




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_STAGE_GROUP
Loglik converged before variable  3,5 ; beta may be infinite. X matrix deemed to be singular; variable 4 8 9 14 15 16 18
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

  n= 635, number of events= 170 
   (40 observations deleted due to missingness)

                              coef  exp(coef)   se(coef)      z Pr(>|z|)    
TNM_PATH_STAGE_GROUP1   -4.050e-01  6.670e-01  3.430e-01 -1.181    0.238    
TNM_PATH_STAGE_GROUP1A  -6.421e-01  5.262e-01  7.204e-01 -0.891    0.373    
TNM_PATH_STAGE_GROUP1B  -1.555e+01  1.772e-07  4.039e+03 -0.004    0.997    
TNM_PATH_STAGE_GROUP1C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP2   -1.545e+01  1.948e-07  2.619e+03 -0.006    0.995    
TNM_PATH_STAGE_GROUP2A   2.827e-01  1.327e+00  4.294e-01  0.658    0.510    
TNM_PATH_STAGE_GROUP2B   2.345e-01  1.264e+00  7.196e-01  0.326    0.745    
TNM_PATH_STAGE_GROUP2C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP3           NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP3A   8.199e-01  2.270e+00  7.198e-01  1.139    0.255    
TNM_PATH_STAGE_GROUP3B   7.690e-01  2.158e+00  7.199e-01  1.068    0.285    
TNM_PATH_STAGE_GROUP3C   2.870e+00  1.764e+01  5.315e-01  5.400 6.68e-08 ***
TNM_PATH_STAGE_GROUP4    2.337e+00  1.035e+01  4.062e-01  5.753 8.76e-09 ***
TNM_PATH_STAGE_GROUP4A          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP4B          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP4C          NA         NA  0.000e+00     NA       NA    
TNM_PATH_STAGE_GROUP99   8.488e-01  2.337e+00  1.747e-01  4.859 1.18e-06 ***
TNM_PATH_STAGE_GROUPN_A         NA         NA  0.000e+00     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1   6.670e-01  1.499e+00    0.3405     1.306
TNM_PATH_STAGE_GROUP1A  5.262e-01  1.900e+00    0.1282     2.160
TNM_PATH_STAGE_GROUP1B  1.772e-07  5.642e+06    0.0000       Inf
TNM_PATH_STAGE_GROUP1C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2   1.948e-07  5.132e+06    0.0000       Inf
TNM_PATH_STAGE_GROUP2A  1.327e+00  7.538e-01    0.5718     3.078
TNM_PATH_STAGE_GROUP2B  1.264e+00  7.910e-01    0.3085     5.180
TNM_PATH_STAGE_GROUP2C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3          NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3A  2.270e+00  4.405e-01    0.5539     9.305
TNM_PATH_STAGE_GROUP3B  2.158e+00  4.635e-01    0.5262     8.847
TNM_PATH_STAGE_GROUP3C  1.764e+01  5.669e-02    6.2231    49.993
TNM_PATH_STAGE_GROUP4   1.035e+01  9.662e-02    4.6684    22.945
TNM_PATH_STAGE_GROUP4A         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP4B         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP4C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP99  2.337e+00  4.279e-01    1.6593     3.291
TNM_PATH_STAGE_GROUPN_A        NA         NA        NA        NA

Concordance= 0.691  (se = 0.023 )
Rsquare= 0.099   (max possible= 0.955 )
Likelihood ratio test= 65.86  on 11 df,   p=7.419e-10
Wald test            = 76.85  on 11 df,   p=5.982e-12
Score (logrank) test = 109.2  on 11 df,   p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 8 rows containing missing values (geom_errorbar).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 19 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 12.

Margins

uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
   
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                            n events median 0.95LCL 0.95UCL
MARGINS=No Residual       511    106  153.1   137.0      NA
MARGINS=Residual, NOS      10      2     NA      NA      NA
MARGINS=Microscopic Resid  11      4   98.3    23.1      NA
MARGINS=Macroscopic Resid   3      2  112.3   108.5      NA
MARGINS=No surg           122     62   35.5    22.4      51
MARGINS=Unknown            18      4     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                MARGINS=No Residual 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    459      11    0.978  0.0067        0.964        0.991
   24    414       9    0.958  0.0093        0.940        0.976
   36    368      15    0.922  0.0128        0.897        0.947
   48    315      12    0.890  0.0153        0.860        0.920
   60    270      11    0.857  0.0177        0.823        0.892
  120     70      40    0.671  0.0309        0.614        0.735

                MARGINS=Residual, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       1    0.889   0.105        0.706            1
   24      7       1    0.778   0.139        0.549            1
   36      5       0    0.778   0.139        0.549            1
   48      5       0    0.778   0.139        0.549            1
   60      5       0    0.778   0.139        0.549            1

                MARGINS=Microscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11       0    1.000   0.000       1.0000            1
   24      7       3    0.707   0.143       0.4758            1
   36      6       0    0.707   0.143       0.4758            1
   48      5       0    0.707   0.143       0.4758            1
   60      4       0    0.707   0.143       0.4758            1
  120      1       1    0.354   0.260       0.0836            1

                MARGINS=Macroscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       0        1       0            1            1
   24      3       0        1       0            1            1
   36      3       0        1       0            1            1
   48      3       0        1       0            1            1
   60      3       0        1       0            1            1

                MARGINS=No surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     68      33    0.694  0.0446        0.612        0.787
   24     51      10    0.584  0.0494        0.495        0.689
   36     33       9    0.466  0.0530        0.373        0.582
   48     23       5    0.389  0.0543        0.296        0.512
   60     21       2    0.356  0.0546        0.263        0.480
  120      4       3    0.265  0.0613        0.169        0.417

                MARGINS=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15       1    0.944   0.054        0.844            1
   24     15       0    0.944   0.054        0.844            1
   36     12       1    0.881   0.079        0.739            1
   48      8       2    0.712   0.125        0.504            1
   60      7       0    0.712   0.125        0.504            1
  120      4       0    0.712   0.125        0.504            1




   
## Univariable Cox Proportional Hazard Model for:  MARGINS
X matrix deemed to be singular; variable 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

  n= 675, number of events= 180 

                            coef exp(coef) se(coef)      z Pr(>|z|)    
MARGINSResidual, NOS     0.23881   1.26974  0.71426  0.334   0.7381    
MARGINSMicroscopic Resid 0.85753   2.35734  0.51000  1.681   0.0927 .  
MARGINSMacroscopic Resid 0.70466   2.02316  0.71470  0.986   0.3242    
MARGINSNot evaluable          NA        NA  0.00000     NA       NA    
MARGINSNo surg           1.75769   5.79900  0.16369 10.738   <2e-16 ***
MARGINSUnknown           0.01931   1.01950  0.51184  0.038   0.9699    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                         exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS         1.270     0.7876    0.3131     5.149
MARGINSMicroscopic Resid     2.357     0.4242    0.8676     6.405
MARGINSMacroscopic Resid     2.023     0.4943    0.4985     8.211
MARGINSNot evaluable            NA         NA        NA        NA
MARGINSNo surg               5.799     0.1724    4.2075     7.993
MARGINSUnknown               1.020     0.9809    0.3739     2.780

Concordance= 0.687  (se = 0.016 )
Rsquare= 0.131   (max possible= 0.956 )
Likelihood ratio test= 94.41  on 5 df,   p=0
Wald test            = 117.1  on 5 df,   p=0
Score (logrank) test = 147.3  on 5 df,   p=0
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  MARGINS

Margins Yes/No

#uni_var(test_var = "MARGINS_YN", data_imp = data)

30 Day Readmission

uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
   
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                                             n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 627    168  153.1   132.9      NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same    15      5   83.9    74.3      NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same      18      3  137.0   137.0      NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same         1      1   12.2      NA      NA
READM_HOSP_30_DAYS_F=9                      14      3  136.8      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    522      45    0.925  0.0108        0.904        0.946
   24    457      22    0.884  0.0134        0.858        0.911
   36    388      25    0.833  0.0160        0.802        0.865
   48    324      17    0.794  0.0178        0.760        0.830
   60    282      11    0.766  0.0192        0.729        0.804
  120     73      42    0.585  0.0298        0.530        0.647

                READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12       1    0.929  0.0688        0.803        1.000
   24     12       0    0.929  0.0688        0.803        1.000
   36     11       0    0.929  0.0688        0.803        1.000
   48     11       0    0.929  0.0688        0.803        1.000
   60      7       1    0.836  0.1077        0.649        1.000
  120      1       3    0.418  0.1789        0.181        0.967

                READM_HOSP_30_DAYS_F=Plan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       0    1.000  0.0000        1.000            1
   24     18       0    1.000  0.0000        1.000            1
   36     18       0    1.000  0.0000        1.000            1
   48     16       0    1.000  0.0000        1.000            1
   60     13       1    0.938  0.0605        0.826            1
  120      2       1    0.865  0.0890        0.707            1

                READM_HOSP_30_DAYS_F=PlanUnplan_Same 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
          12            1            0            1            0            1            1 

                READM_HOSP_30_DAYS_F=9 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11       0      1.0   0.000        1.000            1
   24     10       0      1.0   0.000        1.000            1
   36     10       0      1.0   0.000        1.000            1
   48      8       2      0.8   0.126        0.587            1
   60      8       0      0.8   0.126        0.587            1
  120      3       0      0.8   0.126        0.587            1




   
## Univariable Cox Proportional Hazard Model for:  READM_HOSP_30_DAYS_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

  n= 675, number of events= 180 

                                           coef exp(coef) se(coef)      z Pr(>|z|)  
READM_HOSP_30_DAYS_FUnplan_Readmit_Same  0.1854    1.2038   0.4542  0.408   0.6830  
READM_HOSP_30_DAYS_FPlan_Readmit_Same   -0.8646    0.4212   0.5828 -1.484   0.1379  
READM_HOSP_30_DAYS_FPlanUnplan_Same      2.5567   12.8929   1.0107  2.530   0.0114 *
READM_HOSP_30_DAYS_F9                   -0.3725    0.6890   0.5829 -0.639   0.5228  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                        exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same    1.2038    0.83074    0.4943     2.932
READM_HOSP_30_DAYS_FPlan_Readmit_Same      0.4212    2.37415    0.1344     1.320
READM_HOSP_30_DAYS_FPlanUnplan_Same       12.8929    0.07756    1.7783    93.475
READM_HOSP_30_DAYS_F9                      0.6890    1.45133    0.2198     2.160

Concordance= 0.521  (se = 0.011 )
Rsquare= 0.01   (max possible= 0.956 )
Likelihood ratio test= 6.85  on 4 df,   p=0.1439
Wald test            = 9.24  on 4 df,   p=0.05537
Score (logrank) test = 13.9  on 4 df,   p=0.007615
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  READM_HOSP_30_DAYS_F

Radiation Type

uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
   
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                                           n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None                 465    133    134   110.5      NA
RX_SUMM_RADIATION_F=Beam Radiation       200     44     NA   137.0      NA
RX_SUMM_RADIATION_F=Radioactive Implants   2      1    137      NA      NA
RX_SUMM_RADIATION_F=Unknown                8      2     60    54.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                RX_SUMM_RADIATION_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    378      37    0.916  0.0132        0.890        0.942
   24    337      14    0.880  0.0158        0.850        0.912
   36    284      20    0.825  0.0190        0.789        0.863
   48    239      13    0.785  0.0211        0.745        0.828
   60    203      10    0.751  0.0228        0.707        0.797
  120     45      34    0.549  0.0361        0.483        0.624

                RX_SUMM_RADIATION_F=Beam Radiation 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    178       9    0.954  0.0150        0.925        0.984
   24    153       9    0.903  0.0217        0.862        0.947
   36    136       5    0.872  0.0250        0.825        0.923
   48    115       6    0.832  0.0287        0.778        0.891
   60    103       1    0.825  0.0295        0.769        0.884
  120     32      12    0.686  0.0457        0.602        0.782

                RX_SUMM_RADIATION_F=Radioactive Implants 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      2       0        1       0            1            1
  120      1       0        1       0            1            1

                RX_SUMM_RADIATION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       0    1.000   0.000       1.0000            1
   24      5       0    1.000   0.000       1.0000            1
   36      5       0    1.000   0.000       1.0000            1
   48      3       0    1.000   0.000       1.0000            1
   60      2       2    0.333   0.272       0.0673            1
  120      1       0    0.333   0.272       0.0673            1




   
## Univariable Cox Proportional Hazard Model for:  RX_SUMM_RADIATION_F
X matrix deemed to be singular; variable 3 4 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

  n= 675, number of events= 180 

                                              coef exp(coef) se(coef)      z Pr(>|z|)  
RX_SUMM_RADIATION_FBeam Radiation         -0.41462   0.66059  0.17430 -2.379   0.0174 *
RX_SUMM_RADIATION_FRadioactive Implants   -0.18012   0.83517  1.00515 -0.179   0.8578  
RX_SUMM_RADIATION_FRadioisotopes                NA        NA  0.00000     NA       NA  
RX_SUMM_RADIATION_FBeam + Imp or Isotopes       NA        NA  0.00000     NA       NA  
RX_SUMM_RADIATION_FRadiation, NOS               NA        NA  0.00000     NA       NA  
RX_SUMM_RADIATION_FUnknown                 0.01881   1.01899  0.71316  0.026   0.9790  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                          exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation            0.6606     1.5138    0.4694    0.9296
RX_SUMM_RADIATION_FRadioactive Implants      0.8352     1.1974    0.1165    5.9890
RX_SUMM_RADIATION_FRadioisotopes                 NA         NA        NA        NA
RX_SUMM_RADIATION_FBeam + Imp or Isotopes        NA         NA        NA        NA
RX_SUMM_RADIATION_FRadiation, NOS                NA         NA        NA        NA
RX_SUMM_RADIATION_FUnknown                   1.0190     0.9814    0.2518    4.1230

Concordance= 0.538  (se = 0.019 )
Rsquare= 0.009   (max possible= 0.956 )
Likelihood ratio test= 6.08  on 3 df,   p=0.108
Wald test            = 5.69  on 3 df,   p=0.1275
Score (logrank) test = 5.77  on 3 df,   p=0.1231
Removed 4 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_SUMM_RADIATION_F

Lymphovascular Invasion

uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
_________________________________________________
   
## LYMPH_VASCULAR_INVASION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

   349 observations deleted due to missingness 
                                              n events median 0.95LCL 0.95UCL
LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv 162     21     NA      NA      NA
LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv  10      1     NA    73.8      NA
LYMPH_VASCULAR_INVASION_F=Unknown           154     35     NA    69.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

349 observations deleted due to missingness 
                LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    135       4    0.973  0.0133        0.947        0.999
   24    114       2    0.957  0.0171        0.925        0.991
   36     92       8    0.886  0.0289        0.831        0.945
   48     64       3    0.847  0.0353        0.781        0.919
   60     41       4    0.789  0.0434        0.708        0.879

                LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      9       0        1       0            1            1
   24      9       0        1       0            1            1
   36      8       0        1       0            1            1
   48      6       0        1       0            1            1
   60      5       0        1       0            1            1

                LYMPH_VASCULAR_INVASION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    112      14    0.899  0.0257        0.850        0.951
   24     93       6    0.848  0.0315        0.789        0.912
   36     68       4    0.808  0.0360        0.740        0.881
   48     51       4    0.757  0.0418        0.679        0.843
   60     37       4    0.685  0.0509        0.593        0.793




   
## Univariable Cox Proportional Hazard Model for:  LYMPH_VASCULAR_INVASION_F
X matrix deemed to be singular; variable 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ LYMPH_VASCULAR_INVASION_F, data = data)

  n= 326, number of events= 57 
   (349 observations deleted due to missingness)

                                              coef exp(coef) se(coef)      z Pr(>|z|)   
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv -0.5599    0.5713   1.0241 -0.547  0.58456   
LYMPH_VASCULAR_INVASION_FN_A                    NA        NA   0.0000     NA       NA   
LYMPH_VASCULAR_INVASION_FUnknown            0.7197    2.0538   0.2762  2.606  0.00916 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                           exp(coef) exp(-coef) lower .95 upper .95
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv    0.5713     1.7505   0.07676     4.252
LYMPH_VASCULAR_INVASION_FN_A                      NA         NA        NA        NA
LYMPH_VASCULAR_INVASION_FUnknown              2.0538     0.4869   1.19534     3.529

Concordance= 0.617  (se = 0.036 )
Rsquare= 0.025   (max possible= 0.838 )
Likelihood ratio test= 8.27  on 2 df,   p=0.01597
Wald test            = 7.79  on 2 df,   p=0.02036
Score (logrank) test = 8.23  on 2 df,   p=0.01635
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  LYMPH_VASCULAR_INVASION_F

Endoscopic/Robotic

uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
   
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

   349 observations deleted due to missingness 
                                        n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg       96     29   69.7      47      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap       1      1   29.6      NA      NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 229     27     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

349 observations deleted due to missingness 
                RX_HOSP_SURG_APPR_2010_F=No_Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     61      14    0.834  0.0406        0.758        0.918
   24     44       5    0.755  0.0499        0.663        0.860
   36     31       4    0.678  0.0580        0.573        0.802
   48     20       3    0.601  0.0666        0.484        0.747
   60     14       2    0.535  0.0739        0.408        0.702

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1

                RX_HOSP_SURG_APPR_2010_F=Open_Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    194       4    0.981 0.00944        0.963        1.000
   24    171       3    0.965 0.01288        0.940        0.991
   36    137       7    0.923 0.01989        0.885        0.963
   48    101       4    0.892 0.02472        0.844        0.941
   60     69       6    0.829 0.03376        0.766        0.898




   
## Univariable Cox Proportional Hazard Model for:  RX_HOSP_SURG_APPR_2010_F
X matrix deemed to be singular; variable 1 2 4 6
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

  n= 326, number of events= 57 
   (349 observations deleted due to missingness)

                                            coef exp(coef) se(coef)      z Pr(>|z|)    
RX_HOSP_SURG_APPR_2010_FRobot_Assist          NA        NA   0.0000     NA       NA    
RX_HOSP_SURG_APPR_2010_FRobot_to_Open         NA        NA   0.0000     NA       NA    
RX_HOSP_SURG_APPR_2010_FEndo_Lap          1.1126    3.0421   1.0228  1.088    0.277    
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open      NA        NA   0.0000     NA       NA    
RX_HOSP_SURG_APPR_2010_FOpen_Unknown     -1.4090    0.2444   0.2693 -5.231 1.68e-07 ***
RX_HOSP_SURG_APPR_2010_FUnknown               NA        NA   0.0000     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                         exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist            NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FRobot_to_Open           NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap            3.0421     0.3287    0.4098   22.5814
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open        NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FOpen_Unknown        0.2444     4.0919    0.1441    0.4143
RX_HOSP_SURG_APPR_2010_FUnknown                 NA         NA        NA        NA

Concordance= 0.689  (se = 0.03 )
Rsquare= 0.082   (max possible= 0.838 )
Likelihood ratio test= 28.04  on 2 df,   p=8.138e-07
Wald test            = 30.35  on 2 df,   p=2.562e-07
Score (logrank) test = 36.8  on 2 df,   p=1.023e-08
Removed 5 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_HOSP_SURG_APPR_2010_F

Surgery Radiation Sequence

uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
   
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                             n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone    363     85  153.1   132.9      NA
SURG_RAD_SEQ=Surg then Rad 181     30     NA   136.8      NA
SURG_RAD_SEQ=Rad Alone      19     14   21.3    11.7      NA
SURG_RAD_SEQ=No Treatment   95     44   36.1    26.6    93.4
SURG_RAD_SEQ=Other          15      6   54.2    54.2      NA
SURG_RAD_SEQ=Rad then Surg   2      1   26.9    26.9      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                SURG_RAD_SEQ=Surg Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    322      11    0.968 0.00944        0.950        0.987
   24    293       8    0.943 0.01267        0.919        0.968
   36    257      12    0.903 0.01661        0.871        0.936
   48    222       8    0.873 0.01914        0.836        0.911
   60    187       9    0.836 0.02204        0.794        0.880
  120     44      32    0.612 0.03987        0.539        0.696

                SURG_RAD_SEQ=Surg then Rad 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    166       2    0.989 0.00806        0.973        1.000
   24    145       5    0.957 0.01587        0.927        0.989
   36    131       3    0.937 0.01945        0.899        0.976
   48    110       6    0.892 0.02569        0.843        0.944
   60     99       0    0.892 0.02569        0.843        0.944
  120     29      11    0.746 0.04811        0.658        0.847

                SURG_RAD_SEQ=Rad Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12       7    0.632   0.111       0.4480        0.890
   24      8       4    0.421   0.113       0.2485        0.713
   36      6       1    0.361   0.112       0.1965        0.663
   48      6       0    0.361   0.112       0.1965        0.663
   60      5       1    0.301   0.108       0.1486        0.609
  120      3       1    0.226   0.104       0.0913        0.557

                SURG_RAD_SEQ=No Treatment 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     55      22    0.734  0.0489        0.644        0.836
   24     42       6    0.645  0.0549        0.545        0.762
   36     27       8    0.505  0.0615        0.398        0.641
   48     17       5    0.402  0.0642        0.294        0.549
   60     16       1    0.378  0.0646        0.270        0.529
  120      1       2    0.284  0.0770        0.167        0.483

                SURG_RAD_SEQ=Other 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7       4    0.718   0.120       0.5177        0.996
   24      7       0    0.718   0.120       0.5177        0.996
   36      5       0    0.718   0.120       0.5177        0.996
   48      3       0    0.718   0.120       0.5177        0.996
   60      2       2    0.239   0.199       0.0467        1.000
  120      1       0    0.239   0.199       0.0467        1.000

                SURG_RAD_SEQ=Rad then Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0      1.0   0.000        1.000            1
   24      2       0      1.0   0.000        1.000            1
   36      1       1      0.5   0.354        0.125            1
   48      1       0      0.5   0.354        0.125            1
   60      1       0      0.5   0.354        0.125            1
  120      1       0      0.5   0.354        0.125            1




   
## Univariable Cox Proportional Hazard Model for:  SURG_RAD_SEQ
X matrix deemed to be singular; variable 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

  n= 675, number of events= 180 

                                         coef exp(coef) se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad             -0.4087    0.6645   0.2127 -1.921  0.05469 .  
SURG_RAD_SEQRad Alone                  1.5325    4.6296   0.2902  5.280 1.29e-07 ***
SURG_RAD_SEQNo Treatment               1.5731    4.8218   0.1905  8.257  < 2e-16 ***
SURG_RAD_SEQOther                      1.2840    3.6109   0.4243  3.026  0.00247 ** 
SURG_RAD_SEQRad before and after Surg      NA        NA   0.0000     NA       NA    
SURG_RAD_SEQRad then Surg              0.6271    1.8722   1.0067  0.623  0.53331    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                0.6645     1.5049    0.4379     1.008
SURG_RAD_SEQRad Alone                    4.6296     0.2160    2.6211     8.177
SURG_RAD_SEQNo Treatment                 4.8218     0.2074    3.3192     7.004
SURG_RAD_SEQOther                        3.6109     0.2769    1.5721     8.293
SURG_RAD_SEQRad before and after Surg        NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                1.8722     0.5341    0.2603    13.467

Concordance= 0.695  (se = 0.021 )
Rsquare= 0.127   (max possible= 0.956 )
Likelihood ratio test= 91.79  on 5 df,   p=0
Wald test            = 110.1  on 5 df,   p=0
Score (logrank) test = 137  on 5 df,   p=0
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURG_RAD_SEQ

Surgery Yes/No

uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
   
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                 n events median 0.95LCL 0.95UCL
SURGERY_YN=No  115     58   35.6   24.25    59.7
SURGERY_YN=Ukn   9      4     NA    2.96      NA
SURGERY_YN=Yes 551    118  153.1  136.97      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                SURGERY_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     67      29    0.713  0.0452        0.630        0.808
   24     50      10    0.598  0.0506        0.507        0.706
   36     33       9    0.477  0.0543        0.381        0.596
   48     23       5    0.399  0.0556        0.303        0.524
   60     21       2    0.364  0.0559        0.269        0.492
  120      4       3    0.272  0.0628        0.173        0.427

                SURGERY_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       4    0.556   0.166         0.31        0.997
   24      2       0    0.556   0.166         0.31        0.997

                SURGERY_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    495      13    0.975 0.00675        0.962        0.989
   24    445      13    0.949 0.00982        0.930        0.968
   36    394      16    0.913 0.01284        0.888        0.939
   48    336      14    0.879 0.01528        0.850        0.909
   60    289      11    0.849 0.01730        0.815        0.883
  120     75      43    0.656 0.03066        0.599        0.719




   
## Univariable Cox Proportional Hazard Model for:  SURGERY_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

  n= 675, number of events= 180 

                 coef exp(coef) se(coef)       z Pr(>|z|)    
SURGERY_YNUkn  0.7669    2.1532   0.5228   1.467    0.142    
SURGERY_YNYes -1.6801    0.1863   0.1639 -10.250   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn    2.1532     0.4644    0.7728     5.999
SURGERY_YNYes    0.1863     5.3663    0.1351     0.257

Concordance= 0.675  (se = 0.013 )
Rsquare= 0.127   (max possible= 0.956 )
Likelihood ratio test= 91.81  on 2 df,   p=0
Wald test            = 116  on 2 df,   p=0
Score (logrank) test = 147.9  on 2 df,   p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURGERY_YN

Radiation Yes/No

uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
   
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

   7 observations deleted due to missingness 
                   n events median 0.95LCL 0.95UCL
RADIATION_YN=No  466    133    134     110      NA
RADIATION_YN=Yes 202     45     NA     137      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

7 observations deleted due to missingness 
                RADIATION_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    379      37    0.916  0.0132        0.891        0.942
   24    337      14    0.881  0.0157        0.850        0.912
   36    284      20    0.825  0.0190        0.789        0.864
   48    239      13    0.785  0.0211        0.745        0.828
   60    203      10    0.751  0.0228        0.707        0.797
  120     45      34    0.549  0.0361        0.483        0.625

                RADIATION_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    180       9    0.954  0.0149        0.926        0.984
   24    155       9    0.904  0.0215        0.863        0.947
   36    138       5    0.874  0.0247        0.827        0.924
   48    117       6    0.834  0.0284        0.781        0.892
   60    105       1    0.827  0.0291        0.772        0.886
  120     33      12    0.691  0.0450        0.608        0.785




   
## Univariable Cox Proportional Hazard Model for:  RADIATION_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

  n= 668, number of events= 178 
   (7 observations deleted due to missingness)

                   coef exp(coef) se(coef)      z Pr(>|z|)  
RADIATION_YNYes -0.4091    0.6642   0.1729 -2.367   0.0179 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes    0.6642      1.506    0.4733    0.9321

Concordance= 0.54  (se = 0.019 )
Rsquare= 0.009   (max possible= 0.955 )
Likelihood ratio test= 5.96  on 1 df,   p=0.01462
Wald test            = 5.6  on 1 df,   p=0.01795
Score (logrank) test = 5.68  on 1 df,   p=0.01717





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RADIATION_YN

Chemo Yes/No

uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
   
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

               n events median 0.95LCL 0.95UCL
CHEMO_YN=No  563    142    153   134.1      NA
CHEMO_YN=Yes  74     27    137    88.7      NA
CHEMO_YN=Ukn  38     11    128    89.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                CHEMO_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    468      36    0.933  0.0108        0.912        0.954
   24    417      14    0.904  0.0130        0.879        0.930
   36    359      19    0.860  0.0157        0.830        0.892
   48    301      16    0.820  0.0180        0.785        0.856
   60    257      11    0.788  0.0196        0.751        0.828
  120     66      40    0.603  0.0311        0.545        0.667

                CHEMO_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     64       8    0.890  0.0367        0.821        0.965
   24     52       6    0.800  0.0480        0.711        0.900
   36     45       5    0.723  0.0544        0.624        0.838
   48     38       2    0.689  0.0569        0.586        0.810
   60     36       0    0.689  0.0569        0.586        0.810
  120      9       5    0.523  0.0834        0.383        0.715

                CHEMO_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     32       2    0.944  0.0382        0.873        1.000
   24     28       3    0.855  0.0601        0.745        0.981
   36     23       1    0.819  0.0674        0.697        0.963
   48     20       1    0.782  0.0739        0.650        0.941
   60     17       2    0.697  0.0869        0.546        0.890
  120      4       1    0.634  0.0995        0.466        0.862




   
## Univariable Cox Proportional Hazard Model for:  CHEMO_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

  n= 675, number of events= 180 

              coef exp(coef) se(coef)     z Pr(>|z|)  
CHEMO_YNYes 0.3849    1.4694   0.2101 1.832    0.067 .
CHEMO_YNUkn 0.1531    1.1655   0.3132 0.489    0.625  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes     1.469     0.6805    0.9734     2.218
CHEMO_YNUkn     1.165     0.8580    0.6309     2.153

Concordance= 0.533  (se = 0.015 )
Rsquare= 0.005   (max possible= 0.956 )
Likelihood ratio test= 3.17  on 2 df,   p=0.2046
Wald test            = 3.44  on 2 df,   p=0.179
Score (logrank) test = 3.48  on 2 df,   p=0.1754
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CHEMO_YN

Treatment Yes/No

uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
   
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

   38 observations deleted due to missingness 
              n events median 0.95LCL 0.95UCL
Tx_YN=FALSE  81     35   39.2    34.2      NA
Tx_YN=TRUE  556    134  153.1   136.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

38 observations deleted due to missingness 
                Tx_YN=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     48      16    0.769  0.0511        0.675        0.875
   24     37       5    0.680  0.0586        0.574        0.805
   36     25       6    0.556  0.0665        0.440        0.703
   48     16       5    0.436  0.0707        0.318        0.600
   60     15       1    0.409  0.0714        0.291        0.576
  120      1       2    0.291  0.0894        0.159        0.531

                Tx_YN=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    484      28    0.948 0.00959        0.929        0.967
   24    432      15    0.917 0.01214        0.894        0.941
   36    379      18    0.878 0.01477        0.849        0.907
   48    323      13    0.846 0.01667        0.814        0.879
   60    278      10    0.818 0.01828        0.783        0.855
  120     74      43    0.628 0.03052        0.571        0.691




   
## Univariable Cox Proportional Hazard Model for:  Tx_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

  n= 637, number of events= 169 
   (38 observations deleted due to missingness)

             coef exp(coef) se(coef)      z Pr(>|z|)    
Tx_YNTRUE -1.4226    0.2411   0.1950 -7.296 2.97e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

          exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE    0.2411      4.148    0.1645    0.3533

Concordance= 0.595  (se = 0.012 )
Rsquare= 0.062   (max possible= 0.953 )
Likelihood ratio test= 40.63  on 1 df,   p=1.841e-10
Wald test            = 53.23  on 1 df,   p=2.973e-13
Score (logrank) test = 62.55  on 1 df,   p=2.554e-15





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  Tx_YN

Metastases at Dx

uni_var(test_var = "mets_at_dx_F", data_imp = data)
_________________________________________________
   
## mets_at_dx_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                     n events median 0.95LCL 0.95UCL
mets_at_dx_F=FALSE 660    170  153.1   134.1      NA
mets_at_dx_F=TRUE   15     10   21.6    12.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

                mets_at_dx_F=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    554      42    0.933 0.00996        0.914        0.953
   24    491      20    0.898 0.01231        0.874        0.922
   36    424      22    0.856 0.01467        0.827        0.885
   48    358      19    0.815 0.01665        0.783        0.849
   60    309      13    0.784 0.01814        0.749        0.820
  120     79      46    0.605 0.02845        0.552        0.663

                mets_at_dx_F=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     10       4    0.718   0.120       0.5177        0.996
   24      6       3    0.485   0.138       0.2778        0.845
   36      3       3    0.242   0.120       0.0914        0.642
   48      1       0    0.242   0.120       0.0914        0.642
   60      1       0    0.242   0.120       0.0914        0.642




   
## Univariable Cox Proportional Hazard Model for:  mets_at_dx_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

  n= 675, number of events= 180 

                  coef exp(coef) se(coef)     z Pr(>|z|)    
mets_at_dx_FTRUE 1.901     6.694    0.332 5.727 1.02e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                 exp(coef) exp(-coef) lower .95 upper .95
mets_at_dx_FTRUE     6.694     0.1494     3.492     12.83

Concordance= 0.531  (se = 0.005 )
Rsquare= 0.03   (max possible= 0.956 )
Likelihood ratio test= 20.3  on 1 df,   p=6.622e-06
Wald test            = 32.8  on 1 df,   p=1.023e-08
Score (logrank) test = 43.91  on 1 df,   p=3.435e-11





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  mets_at_dx_F

Tumor specific Variables

Node Size

Cox Proportional Hazard Ratio

Model #1

Full analysis

model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
                     ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
                     data = data)
X matrix deemed to be singular; variable 5
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + 
    INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + 
    EDUCATION_F, data = data)

  n= 622, number of events= 177 
   (53 observations deleted due to missingness)

                                                  coef exp(coef)  se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad                    -0.174553  0.839833  0.229399 -0.761 0.446708    
SURG_RAD_SEQRad Alone                         1.891938  6.632211  0.329250  5.746 9.13e-09 ***
SURG_RAD_SEQNo Treatment                      1.574550  4.828569  0.217992  7.223 5.09e-13 ***
SURG_RAD_SEQOther                             0.756359  2.130506  0.474954  1.592 0.111274    
SURG_RAD_SEQRad before and after Surg               NA        NA  0.000000     NA       NA    
SURG_RAD_SEQRad then Surg                     2.753756 15.701501  1.173906  2.346 0.018986 *  
INSURANCE_FNone                               1.414530  4.114554  0.371646  3.806 0.000141 ***
INSURANCE_FMedicaid                           0.864891  2.374747  0.440165  1.965 0.049423 *  
INSURANCE_FMedicare                           0.387196  1.472845  0.236802  1.635 0.102028    
INSURANCE_FOther Government                   0.554916  1.741795  1.032204  0.538 0.590851    
INSURANCE_FUnknown                            0.500132  1.648940  0.561456  0.891 0.373048    
AGE                                           0.053398  1.054849  0.008433  6.332 2.43e-10 ***
SEX_FFemale                                   0.091496  1.095812  0.602556  0.152 0.879309    
RACE_FBlack                                  -0.024778  0.975526  0.272419 -0.091 0.927528    
RACE_FOther/Unk                              -2.078791  0.125081  0.877495 -2.369 0.017836 *  
RACE_FAsian                                  -0.990017  0.371570  1.036699 -0.955 0.339593    
INCOME_F$38,000 - $47,999                    -0.189725  0.827186  0.249235 -0.761 0.446519    
INCOME_F$48,000 - $62,999                    -0.281293  0.754807  0.271549 -1.036 0.300258    
INCOME_F$63,000 +                            -0.073274  0.929346  0.326715 -0.224 0.822544    
U_R_FUrban                                   -0.446048  0.640153  0.259889 -1.716 0.086106 .  
U_R_FRural                                    0.189271  1.208369  0.599904  0.316 0.752380    
FACILITY_TYPE_FComprehensive Comm Ca Program  0.229468  1.257930  0.264584  0.867 0.385791    
FACILITY_TYPE_FAcademic/Research Program     -0.028155  0.972237  0.275763 -0.102 0.918677    
FACILITY_TYPE_FIntegrated Network Ca Program  0.039657  1.040453  0.302867  0.131 0.895825    
FACILITY_LOCATION_FMiddle Atlantic            0.652577  1.920484  0.476217  1.370 0.170582    
FACILITY_LOCATION_FSouth Atlantic             0.758401  2.134859  0.457529  1.658 0.097398 .  
FACILITY_LOCATION_FEast North Central         0.930786  2.536501  0.454846  2.046 0.040719 *  
FACILITY_LOCATION_FEast South Central         1.062595  2.893870  0.495074  2.146 0.031846 *  
FACILITY_LOCATION_FWest North Central         1.000011  2.718311  0.475697  2.102 0.035536 *  
FACILITY_LOCATION_FWest South Central         1.185656  3.272834  0.486173  2.439 0.014738 *  
FACILITY_LOCATION_FMountain                   1.074561  2.928708  0.609169  1.764 0.077736 .  
FACILITY_LOCATION_FPacific                    1.005541  2.733385  0.551861  1.822 0.068441 .  
EDUCATION_F13 - 20.9%                         0.449626  1.567726  0.260177  1.728 0.083960 .  
EDUCATION_F7 - 12.9%                          0.085603  1.089374  0.301068  0.284 0.776155    
EDUCATION_FLess than 7%                      -0.240105  0.786545  0.370394 -0.648 0.516828    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                             exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                       0.8398    1.19071   0.53571    1.3166
SURG_RAD_SEQRad Alone                           6.6322    0.15078   3.47856   12.6449
SURG_RAD_SEQNo Treatment                        4.8286    0.20710   3.14966    7.4024
SURG_RAD_SEQOther                               2.1305    0.46937   0.83985    5.4046
SURG_RAD_SEQRad before and after Surg               NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                      15.7015    0.06369   1.57294  156.7370
INSURANCE_FNone                                 4.1146    0.24304   1.98599    8.5245
INSURANCE_FMedicaid                             2.3747    0.42110   1.00219    5.6271
INSURANCE_FMedicare                             1.4728    0.67896   0.92596    2.3427
INSURANCE_FOther Government                     1.7418    0.57412   0.23035   13.1708
INSURANCE_FUnknown                              1.6489    0.60645   0.54865    4.9558
AGE                                             1.0548    0.94800   1.03756    1.0724
SEX_FFemale                                     1.0958    0.91257   0.33639    3.5697
RACE_FBlack                                     0.9755    1.02509   0.57195    1.6639
RACE_FOther/Unk                                 0.1251    7.99480   0.02240    0.6984
RACE_FAsian                                     0.3716    2.69128   0.04871    2.8345
INCOME_F$38,000 - $47,999                       0.8272    1.20892   0.50752    1.3482
INCOME_F$48,000 - $62,999                       0.7548    1.32484   0.44330    1.2852
INCOME_F$63,000 +                               0.9293    1.07602   0.48987    1.7631
U_R_FUrban                                      0.6402    1.56213   0.38465    1.0654
U_R_FRural                                      1.2084    0.82756   0.37287    3.9160
FACILITY_TYPE_FComprehensive Comm Ca Program    1.2579    0.79496   0.74893    2.1129
FACILITY_TYPE_FAcademic/Research Program        0.9722    1.02856   0.56629    1.6692
FACILITY_TYPE_FIntegrated Network Ca Program    1.0405    0.96112   0.57467    1.8837
FACILITY_LOCATION_FMiddle Atlantic              1.9205    0.52070   0.75519    4.8839
FACILITY_LOCATION_FSouth Atlantic               2.1349    0.46841   0.87080    5.2338
FACILITY_LOCATION_FEast North Central           2.5365    0.39424   1.04009    6.1859
FACILITY_LOCATION_FEast South Central           2.8939    0.34556   1.09666    7.6364
FACILITY_LOCATION_FWest North Central           2.7183    0.36788   1.07000    6.9058
FACILITY_LOCATION_FWest South Central           3.2728    0.30555   1.26210    8.4870
FACILITY_LOCATION_FMountain                     2.9287    0.34145   0.88746    9.6650
FACILITY_LOCATION_FPacific                      2.7334    0.36585   0.92674    8.0620
EDUCATION_F13 - 20.9%                           1.5677    0.63787   0.94147    2.6106
EDUCATION_F7 - 12.9%                            1.0894    0.91796   0.60382    1.9654
EDUCATION_FLess than 7%                         0.7865    1.27138   0.38058    1.6256

Concordance= 0.803  (se = 0.024 )
Rsquare= 0.285   (max possible= 0.962 )
Likelihood ratio test= 208.7  on 34 df,   p=0
Wald test            = 199.2  on 34 df,   p=0
Score (logrank) test = 242.8  on 34 df,   p=0

Summary of Model

model_one %>%
        tidy(., exponentiate = TRUE) %>%
        select(term, estimate, conf.low, conf.high, p.value) %>%
        rename(Variable = term,
               Hazard_Ratio = estimate) %>%
        tbl_df %>%
        print(n = nrow(.))

Prediction Logistic Regression Models

Surgery

no_Ukns <- data %>%
  filter(SURGERY_YN != "Ukn") %>% 
  droplevels() %>% 
  mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Ukns)
summary(fit_surg)

Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F + 
    FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP, 
    data = no_Ukns)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.99738   0.02353   0.12814   0.21512   0.51965  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                   0.449454   0.146560   3.067  0.00226 ** 
AGE_F(54,64]                                 -0.051886   0.046995  -1.104  0.27001    
AGE_F(64,74]                                  0.032495   0.047457   0.685  0.49379    
AGE_F(74,100]                                -0.115168   0.043694  -2.636  0.00862 ** 
SEX_FFemale                                   0.003629   0.094402   0.038  0.96935    
RACE_FBlack                                  -0.091417   0.052294  -1.748  0.08097 .  
RACE_FOther/Unk                              -0.147488   0.111164  -1.327  0.18511    
RACE_FAsian                                  -0.040812   0.118364  -0.345  0.73037    
INCOME_F$38,000 - $47,999                     0.003332   0.051760   0.064  0.94870    
INCOME_F$48,000 - $62,999                    -0.043975   0.056143  -0.783  0.43379    
INCOME_F$63,000 +                            -0.002427   0.063726  -0.038  0.96963    
U_R_FUrban                                    0.016326   0.048377   0.337  0.73589    
U_R_FRural                                    0.153684   0.113058   1.359  0.17456    
FACILITY_TYPE_FComprehensive Comm Ca Program  0.038554   0.050256   0.767  0.44329    
FACILITY_TYPE_FAcademic/Research Program      0.020157   0.054553   0.369  0.71189    
FACILITY_TYPE_FIntegrated Network Ca Program  0.032201   0.061660   0.522  0.60171    
FACILITY_LOCATION_FMiddle Atlantic            0.113362   0.084882   1.336  0.18222    
FACILITY_LOCATION_FSouth Atlantic             0.198912   0.082088   2.423  0.01569 *  
FACILITY_LOCATION_FEast North Central         0.193570   0.082079   2.358  0.01868 *  
FACILITY_LOCATION_FEast South Central         0.195837   0.096073   2.038  0.04196 *  
FACILITY_LOCATION_FWest North Central         0.174205   0.092287   1.888  0.05957 .  
FACILITY_LOCATION_FWest South Central         0.115696   0.090969   1.272  0.20395    
FACILITY_LOCATION_FMountain                   0.276960   0.100844   2.746  0.00621 ** 
FACILITY_LOCATION_FPacific                    0.351090   0.098215   3.575  0.00038 ***
EDUCATION_F13 - 20.9%                         0.108274   0.053749   2.014  0.04442 *  
EDUCATION_F7 - 12.9%                          0.125424   0.059437   2.110  0.03526 *  
EDUCATION_FLess than 7%                       0.146218   0.070123   2.085  0.03749 *  
EXPN_GROUPPre-Expansion                       0.125915   0.056428   2.231  0.02603 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.1404547)

    Null deviance: 90.261  on 612  degrees of freedom
Residual deviance: 82.166  on 585  degrees of freedom
  (53 observations deleted due to missingness)
AIC: 565.72

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.5674558 1.1760975 2.0890426
AGE_F(54,64]                                  0.9494369 0.8658920 1.0410426
AGE_F(64,74]                                  1.0330286 0.9412750 1.1337262
AGE_F(74,100]                                 0.8912164 0.8180712 0.9709016
SEX_FFemale                                   1.0036353 0.8341048 1.2076227
RACE_FBlack                                   0.9126367 0.8237300 1.0111393
RACE_FOther/Unk                               0.8628729 0.6939428 1.0729265
RACE_FAsian                                   0.9600095 0.7612445 1.2106732
INCOME_F$38,000 - $47,999                     1.0033373 0.9065442 1.1104650
INCOME_F$48,000 - $62,999                     0.9569780 0.8572601 1.0682953
INCOME_F$63,000 +                             0.9975759 0.8804455 1.1302887
U_R_FUrban                                    1.0164598 0.9245093 1.1175557
U_R_FRural                                    1.1661224 0.9343486 1.4553897
FACILITY_TYPE_FComprehensive Comm Ca Program  1.0393072 0.9418161 1.1468900
FACILITY_TYPE_FAcademic/Research Program      1.0203618 0.9168929 1.1355069
FACILITY_TYPE_FIntegrated Network Ca Program  1.0327247 0.9151653 1.1653855
FACILITY_LOCATION_FMiddle Atlantic            1.1200378 0.9483764 1.3227709
FACILITY_LOCATION_FSouth Atlantic             1.2200751 1.0387545 1.4330462
FACILITY_LOCATION_FEast North Central         1.2135739 1.0332386 1.4253840
FACILITY_LOCATION_FEast South Central         1.2163285 1.0075666 1.4683447
FACILITY_LOCATION_FWest North Central         1.1902996 0.9933481 1.4263007
FACILITY_LOCATION_FWest South Central         1.1226542 0.9393181 1.3417739
FACILITY_LOCATION_FMountain                   1.3191137 1.0825388 1.6073890
FACILITY_LOCATION_FPacific                    1.4206153 1.1718597 1.7221753
EDUCATION_F13 - 20.9%                         1.1143536 1.0029335 1.2381518
EDUCATION_F7 - 12.9%                          1.1336295 1.0089701 1.2736906
EDUCATION_FLess than 7%                       1.1574486 1.0088189 1.3279759
EXPN_GROUPPre-Expansion                       1.1341857 1.0154359 1.2668227

Metastasis at Time of Diagnosis

# limit to those cases where data about expansion status is available (> Age 39, non-ambiguous status states)
fit_mets <- glm(mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = data)
summary(fit_mets)

Call:
glm(formula = mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + 
    U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + 
    EXPN_GROUP, data = data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.15826  -0.04009  -0.01793   0.00323   0.98513  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)  
(Intercept)                                   0.052514   0.056989   0.921   0.3572  
AGE_F(54,64]                                 -0.040791   0.018467  -2.209   0.0276 *
AGE_F(64,74]                                 -0.021982   0.018640  -1.179   0.2388  
AGE_F(74,100]                                -0.031423   0.017189  -1.828   0.0680 .
SEX_FFemale                                   0.013537   0.037248   0.363   0.7164  
RACE_FBlack                                   0.001323   0.020454   0.065   0.9485  
RACE_FOther/Unk                              -0.022386   0.043869  -0.510   0.6100  
RACE_FAsian                                   0.056050   0.046654   1.201   0.2301  
INCOME_F$38,000 - $47,999                     0.025781   0.020397   1.264   0.2067  
INCOME_F$48,000 - $62,999                     0.033169   0.022041   1.505   0.1329  
INCOME_F$63,000 +                             0.051943   0.025043   2.074   0.0385 *
U_R_FUrban                                    0.014968   0.019075   0.785   0.4329  
U_R_FRural                                    0.001987   0.044607   0.045   0.9645  
FACILITY_TYPE_FComprehensive Comm Ca Program -0.016615   0.019606  -0.847   0.3971  
FACILITY_TYPE_FAcademic/Research Program      0.009234   0.021277   0.434   0.6644  
FACILITY_TYPE_FIntegrated Network Ca Program -0.002535   0.024121  -0.105   0.9163  
FACILITY_LOCATION_FMiddle Atlantic            0.031687   0.032596   0.972   0.3314  
FACILITY_LOCATION_FSouth Atlantic             0.033930   0.031693   1.071   0.2848  
FACILITY_LOCATION_FEast North Central         0.057190   0.031663   1.806   0.0714 .
FACILITY_LOCATION_FEast South Central         0.019619   0.037339   0.525   0.5995  
FACILITY_LOCATION_FWest North Central         0.018628   0.035680   0.522   0.6018  
FACILITY_LOCATION_FWest South Central         0.015261   0.035211   0.433   0.6649  
FACILITY_LOCATION_FMountain                   0.038147   0.039252   0.972   0.3315  
FACILITY_LOCATION_FPacific                    0.010420   0.037845   0.275   0.7832  
EDUCATION_F13 - 20.9%                        -0.027887   0.021105  -1.321   0.1869  
EDUCATION_F7 - 12.9%                         -0.034709   0.023354  -1.486   0.1378  
EDUCATION_FLess than 7%                      -0.044475   0.027451  -1.620   0.1057  
EXPN_GROUPPre-Expansion                      -0.052065   0.021989  -2.368   0.0182 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.02188346)

    Null deviance: 13.685  on 621  degrees of freedom
Residual deviance: 12.999  on 594  degrees of freedom
  (53 observations deleted due to missingness)
AIC: -582.79

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_mets), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.0539171 1.1760975 2.0890426
AGE_F(54,64]                                  0.9600301 0.8658920 1.0410426
AGE_F(64,74]                                  0.9782574 0.9412750 1.1337262
AGE_F(74,100]                                 0.9690654 0.8180712 0.9709016
SEX_FFemale                                   1.0136295 0.8341048 1.2076227
RACE_FBlack                                   1.0013238 0.8237300 1.0111393
RACE_FOther/Unk                               0.9778623 0.6939428 1.0729265
RACE_FAsian                                   1.0576506 0.7612445 1.2106732
INCOME_F$38,000 - $47,999                     1.0261160 0.9065442 1.1104650
INCOME_F$48,000 - $62,999                     1.0337251 0.8572601 1.0682953
INCOME_F$63,000 +                             1.0533154 0.8804455 1.1302887
U_R_FUrban                                    1.0150810 0.9245093 1.1175557
U_R_FRural                                    1.0019890 0.9343486 1.4553897
FACILITY_TYPE_FComprehensive Comm Ca Program  0.9835228 0.9418161 1.1468900
FACILITY_TYPE_FAcademic/Research Program      1.0092770 0.9168929 1.1355069
FACILITY_TYPE_FIntegrated Network Ca Program  0.9974678 0.9151653 1.1653855
FACILITY_LOCATION_FMiddle Atlantic            1.0321940 0.9483764 1.3227709
FACILITY_LOCATION_FSouth Atlantic             1.0345117 1.0387545 1.4330462
FACILITY_LOCATION_FEast North Central         1.0588570 1.0332386 1.4253840
FACILITY_LOCATION_FEast South Central         1.0198126 1.0075666 1.4683447
FACILITY_LOCATION_FWest North Central         1.0188029 0.9933481 1.4263007
FACILITY_LOCATION_FWest South Central         1.0153781 0.9393181 1.3417739
FACILITY_LOCATION_FMountain                   1.0388844 1.0825388 1.6073890
FACILITY_LOCATION_FPacific                    1.0104745 1.1718597 1.7221753
EDUCATION_F13 - 20.9%                         0.9724978 1.0029335 1.2381518
EDUCATION_F7 - 12.9%                          0.9658866 1.0089701 1.2736906
EDUCATION_FLess than 7%                       0.9564998 1.0088189 1.3279759
EXPN_GROUPPre-Expansion                       0.9492672 1.0154359 1.2668227
LS0tCnRpdGxlOiAiRXh0cmFtYW1tYXJ5IFBhZ2V0IERpc2Vhc2UgLSBSZXZpZXcgb2YgdGhlIE5DREIiCmF1dGhvcjogIlJhbWllIEZhdGh5IgpkYXRlOiAiMTEvMDUvMjAxOSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogdW5pdGVkCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKLS0tCgoKCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQoKbGlicmFyeSgiZ2dwbG90MiIpCmxpYnJhcnkoImRwbHlyIikKbGlicmFyeSgidGlkeXIiKQpsaWJyYXJ5KCJrbml0ciIpCmxpYnJhcnkoInRhYmxlb25lIikKbGlicmFyeSgiZm9yY2F0cyIpCmxpYnJhcnkoInN1cnZpdmFsIikKbGlicmFyeSgibnBzdXJ2IikKbGlicmFyeSgiYnJvb20iKQpsaWJyYXJ5KCJ0aWJibGUiKQpsaWJyYXJ5KCJyZWFkciIpCmxpYnJhcnkoInN1cnZtaW5lciIpCmxpYnJhcnkoInN0cmluZ3IiKQoKCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9VFJVRSkKJyUhaW4lJyA8LSBmdW5jdGlvbih4LHkpISgnJWluJScoeCx5KSkKYGBgCgpgYGB7cn0KcF90YWJsZSA8LSBmdW5jdGlvbih0YWJfZGF0YSwgLi4uKSB7CiAgdGFiX2RhdGFfMiA8LSBkZXBhcnNlKHN1YnN0aXR1dGUodGFiX2RhdGEpKQogIAogIHRhYmxlX3AgPC0gZG8uY2FsbChDcmVhdGVUYWJsZU9uZSwgCiAgICAgICAgICAgICAgICAgICAgIGxpc3QoZGF0YSA9IGFzLm5hbWUodGFiX2RhdGFfMiksIGluY2x1ZGVOQSA9IFRSVUUsIC4uLikpCiAgdGFibGVfcF9vdXQgPC0gcHJpbnQodGFibGVfcCwKICAgICAgICAgICAgICAgICAgICAgICBzaG93QWxsTGV2ZWxzID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICBwcmludFRvZ2dsZSA9IEZBTFNFKQogIGthYmxlKHRhYmxlX3Bfb3V0LAogICAgICAgIGFsaWduID0gImMiKQp9CmBgYAoKCgpgYGB7cn0KZl9wbG90IDwtIGZ1bmN0aW9uKHRlc3RfdmFyLCBkYXRhX2ltcCl7CgogICAgICAgICAgICAgICAgCiAgICAgICAgY2F0KCJfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMiLCB0ZXN0X3ZhcikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQoKICAgICAgICAKICAgICAgICBmIDwtIGFzLmZvcm11bGEocGFzdGUoYXMubmFtZSh0ZXN0X3ZhciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBR0UgKyBTRVggKyBUX1NJWkUgKyBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgWUVBUl9PRl9ESUFHTk9TSVMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXAgPSAiIH4gIiApKQogICAgICAgIAogICAgICAgIGRhdGFfaW1wXzIgPC0gZGVwYXJzZShzdWJzdGl0dXRlKGRhdGFfaW1wKSkKICAgICAgICAKICAgICAgICBmaXRfZm4gPC0gZG8uY2FsbCgiZ2xtIiwgCiAgICAgICAgICAgICAgICAgICAgICAgbGlzdChmb3JtdWxhID0gZiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiKSkKICAgICAgICAKICAgICAgICBwcmludChzdW1tYXJ5KGZpdF9mbikpCiAgICAgICAgCiAgICAgICAgb3IgPC0gYXMuZGF0YS5mcmFtZShleHAoY29lZmZpY2llbnRzKGZpdF9mbikpKQogICAgICAgIG9yJFZhcmlhYmxlIDwtIHJvd25hbWVzKG9yKQogICAgICAgIHJvd25hbWVzKG9yKSA8LSBjKCkKICAgICAgICBuYW1lcyhvcikgPC0gYygnT2Rkc1JhdGlvJywgJ1ZhcmlhYmxlJykKCiAgICAgICAgY2kgPC0gYXMuZGF0YS5mcmFtZShleHAoY29uZmludChmaXRfZm4pKSkKICAgICAgICBjaSRWYXJpYWJsZSA8LSByb3duYW1lcyhjaSkKICAgICAgICByb3duYW1lcyhjaSkgPC0gYygpCgogICAgICAgIHBfdmFsX2xpc3QgPC0gdGlkeShmaXRfZm4pICU+JQogICAgICAgIHNlbGVjdCh0ZXJtLCBwLnZhbHVlKSAlPiUKICAgICAgICByZW5hbWUoVmFyaWFibGUgPSB0ZXJtKSAlPiUKICAgICAgICBtdXRhdGUocC52YWx1ZSA9IHJvdW5kKHAudmFsdWUsIDQpKQogICAgICAgIHBfdmFsX2xpc3QkcC52YWx1ZSA8LSBhcy5jaGFyYWN0ZXIocF92YWxfbGlzdCRwLnZhbHVlKQogICAgICAgIHBfdmFsX2xpc3QkcC52YWx1ZVtwX3ZhbF9saXN0JHAudmFsdWUgPT0gIjAiXSA8LSAiPCAwLjAwMDEiCgogICAgICAgIGFsbCA8LSBmdWxsX2pvaW4ob3IsIGNpLCBieSA9ICdWYXJpYWJsZScpCiAgICAgICAgYWxsIDwtIGZ1bGxfam9pbihhbGwsIHBfdmFsX2xpc3QsIGJ5ID0gIlZhcmlhYmxlIikKICAgICAgICBuYW1lcyhhbGwpIDwtIGMoJ09kZHNSYXRpbycsICdWYXJpYWJsZScsICdMb3dlcicsICdVcHBlcicsICJwX3ZhbHVlIikKICAgICAgICBhbGwgPC0gbmEub21pdChhbGwpCgogICAgICAgIGFsbCA8LSBhbGwgJT4lCiAgICAgICAgZmlsdGVyKFZhcmlhYmxlICE9ICcoSW50ZXJjZXB0KScpIAoKCiAgICAgICAgdGV4dCA8LSBjYmluZChjKCJWYXJpYWJsZSIsIGFzLmNoYXJhY3RlcihhbGwkVmFyaWFibGUpKSwgCiAgICAgICAgICAgICAgYygiT2RkcyBSYXRpbyIsIGFzLmNoYXJhY3Rlcihyb3VuZChhbGwkT2Rkc1JhdGlvLCAyKSkpLAogICAgICAgICAgICAgIGMoIkxvd2VyIENJIiwgYXMuY2hhcmFjdGVyKHJvdW5kKGFsbCRMb3dlciwgMikpKSwKICAgICAgICAgICAgICBjKCJVcHBlciBDSSIsIGFzLmNoYXJhY3Rlcihyb3VuZChhbGwkVXBwZXIsIDIpKSksCiAgICAgICAgICAgICAgYygicCBWYWx1ZSIsIGFsbCRwX3ZhbHVlKSkKCgogICAgICAgIGZvcmVzdHBsb3QodGV4dCwgCiAgICAgICAgICAgbWVhbiA9IGMoTkEsIGFsbCRPZGRzUmF0aW8pLCAKICAgICAgICAgICBsb3dlciA9IGMoTkEsIGFsbCRMb3dlciksIAogICAgICAgICAgIHVwcGVyID0gYyhOQSwgYWxsJFVwcGVyKSwgCiAgICAgICAgICAgbmV3X3BhZ2UgPSAgIFRSVUUsIHplcm8gPSAxLCAKICAgICAgICAgICBjbGlwID0gYygwLjEsIDEwMCksCiAgICAgICAgICAgaHJ6bF9saW5lcyA9IGxpc3QoIjIiID0gZ3Bhcihjb2w9IiM0NDQ0NDQiKSksCiAgICAgICAgICAgdmVydGljZXMgPSBUUlVFLAogICAgICAgICAgIGdyYXBoLnBvcyA9IDIsCiAgICAgICAgICAgeGxhYiA9ICJPZGRzIFJhdGlvIChsb2cpIiwKICAgICAgICAgICBhbGlnbiA9ICJjIiwKICAgICAgICAgICB0eHRfZ3AgPSBmcFR4dEdwKGNleCA9IDAuNyksCiAgICAgICAgICAgeHRpY2tzID0gZ2V0VGlja3MobG93ID0gYWxsJExvd2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBhbGwkVXBwZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcD1jKC1JbmYsIEluZiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwPVRSVUUpLAogICAgICAgICAgIGJveHNpemUgPSAwLjEpCiAgICAKfQpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCmJyZWFzdCA8LSAgcmVhZF9md2YoJ05DREJQVUZfQnJlYXN0LjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZ1bHZhIDwtICByZWFkX2Z3ZignTkNEQlBVRl9WdWx2YS4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgp2YWdpbmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1ZhZ2luYS4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpwZW5pcyA8LSAgcmVhZF9md2YoJ05DREJQVUZfUGVuaXMuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKCiNDb21iaW5lIGRhdGEgZm9yIGFsbCBzdWJzaXRlcwpkYXQgPC0gYmluZF9yb3dzKGxpcCwgbWVsYW5vbWEsIHNraW4sIGhvZGdleHRyLCBob2RnbmRhbCwgTkhMbmRhbCwgYnJlYXN0LCAKICAgICAgICAgICAgICAgICB2dWx2YSwgdmFnaW5hLCBwZW5pcykKCnJtKGxpcCwgbWVsYW5vbWEsIHNraW4sIGhvZGdleHRyLCBob2RnbmRhbCwgTkhMbmRhbCwgYnJlYXN0LCB2dWx2YSwgdmFnaW5hLCBwZW5pcykKCnByaW1fc2l0ZV90ZXh0IDwtIGRhdGFfZnJhbWUoUFJJTUFSWV9TSVRFID0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNsaXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoIkMwMDAiLCAiQzAwMSIsICJDMDAyIiwgIkMwMDMiLCAiQzAwNCIsICJDMDA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkMwMDYiLCAiQzAwOCIsICJDMDA5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNza2luL21lbGFub21hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVhc3QgLSBuaXBwbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZhZ2luYS92dWx2YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BlbmlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgICAgICAgICAgICAgICAgClNJVEVfVEVYVCA9IGMoCiAgI2xpcCAKIkMwMC4wIEV4dGVybmFsIExpcDogVXBwZXIgTk9TIiwKIkMwMC4xIEV4dGVybmFsIExpcDogTG93ZXIgTk9TIiwKIkMwMC4yICBFeHRlcm5hbCBMaXA6IE5PUyIsCiJDMDAuMyBMaXA6IFVwcGVyIE11Y29zYSIsIAoiQzAwLjQgTGlwOiBMb3dlciBNdWNvc2EiLCAKIkMwMC41IExpcDogTXVjb3NhIE5PUyIsCiJDMDAuNiBMaXA6IENvbW1pc3N1cmUiLCAKIkMwMC44IExpcDogT3ZlcmxhcHBpbmciLCAKIkMwMC45IExpcCwgTk9TIiwKCgogI3NraW4KIkM0NC4wIFNraW4gb2YgbGlwLCBOT1MiLAoiQzQ0LjEgRXllbGlkIiwKIkM0NC4yIEV4dGVybmFsIGVhciIsCiJDNDQuMyBTa2luIG9mIGVhciBhbmQgdW5zcGVjaWZpZWQgcGFydHMgb2YgZmFjZSIsCiJDNDQuNCBTa2luIG9mIHNjYWxwIGFuZCBuZWNrIiwKIkM0NC41IFNraW4gb2YgdHJ1bmsiLAoiQzQ0LjYgU2tpbiBvZiB1cHBlciBsaW1iIGFuZCBzaG91bGRlciIsCiJDNDQuNyBTa2luIG9mIGxvd2VyIGxpbWIgYW5kIGhpcCIsCiJDNDQuOCBPdmVybGFwcGluZyBsZXNpb24gb2Ygc2tpbiIsCiJDNDQuOSBTa2luLCBOT1MiLCAKCiNicmVhc3QKIkM1MC4wIE5pcHBsZSIsCgojdnVsdmEvdmFnaW5hCiJDNTEuMCBMYWJpdW0gbWFqdXMiLAoiQzUxLjEgTGFiaXVtIG1pbnVzIiwKIkM1MS4yIENsaXRvcmlzIiwKIkM1MS44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiB2dWx2YSIsCiJDNTEuOSBWdWx2YSwgTk9TIiwKIkM1Mi45IFZhZ2luYSwgTk9TIiwKCiNwZW5pcwoiQzYwLjAgUHJlcHVjZSIsCiJDNjAuMSBHbGFucyBwZW5pcyIsCiJDNjAuMiBCb2R5IG9mIHBlbmlzIiwKIkM2MC44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiBwZW5pcyIsCiJDNjAuOSBQZW5pcyIsCiJDNjMuMiBTY3JvdHVtLCBOT1MiKSkKCgpkYXQgPC0gbWVyZ2UoZGF0LCBwcmltX3NpdGVfdGV4dCwgYnkgPSAiUFJJTUFSWV9TSVRFIiwgYWxsLnggPSBUUlVFKSAKIApybShwcmltX3NpdGVfdGV4dCkKCiMgY29udmVydCBudW1lcmljIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBudW1lcmljIGNsYXNzCm51bV92YXJzIDwtIGMoIkFHRSIsICJDUk9XRkxZIiwgIlRVTU9SX1NJWkUiLCAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsICJEWF9SQURfU1RBUlRFRF9EQVlTIiwgICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLAogICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX0VMQVBTRURfUlhfREFZUyIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgCiAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIkRYX09USEVSX1NUQVJURURfREFZUyIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLAogICAgICAgICAgICAgICJSQURfTlVNX1RSRUFUX1ZPTCIpCgpkYXRbbnVtX3ZhcnNdIDwtIGxhcHBseShkYXRbbnVtX3ZhcnNdLCBhcy5udW1lcmljKQoKCiMgY29udmVydCBmYWN0b3IgdmFyaWFibGVzIGZyb20gY2hhcmFjdGVyIGNsYXNzIHRvIGZhY3RvciBjbGFzcwp2YXJzIDwtIG5hbWVzKGRhdCkKZmFjdF92YXJzIDwtIHZhcnNbISh2YXJzICVpbiUgbnVtX3ZhcnMpXSAjIGJhc2ljYWxseSBhbGwgb2YgdGhlIG5vbi1udW1lcmljcwoKZGF0W2ZhY3RfdmFyc10gPC0gbGFwcGx5KGRhdFtmYWN0X3ZhcnNdLCBhcy5jaGFyYWN0ZXIpCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuZmFjdG9yKQoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfVFlQRV9GID0gZmN0X3JlY29kZShGQUNJTElUWV9UWVBFX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tdW5pdHkgQ2FuY2VyIFByb2dyYW0iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21wcmVoZW5zaXZlIENvbW0gQ2EgUHJvZ3JhbSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjYWRlbWljL1Jlc2VhcmNoIFByb2dyYW0iID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlZ3JhdGVkIE5ldHdvcmsgQ2EgUHJvZ3JhbSIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShGQUNJTElUWV9MT0NBVElPTl9GID0gZmN0X3JlY29kZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IEVuZ2xhbmQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWRkbGUgQXRsYW50aWMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCBBdGxhbnRpYyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgTm9ydGggQ2VudHJhbCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgU291dGggQ2VudHJhbCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgTm9ydGggQ2VudHJhbCIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgU291dGggQ2VudHJhbCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vdW50YWluIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyIgPSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dCBvZiBVUyIgPSAiMCIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfR0VPR1JBUEhZID0gZmN0X2NvbGxhcHNlKEZBQ0lMSVRZX0xPQ0FUSU9OX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vcnRoZWFzdCIgPSBjKCIxIiwgIjIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCIgPSBjKCIzIiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWR3ZXN0IiA9IGMoIjQiLCAiNSIsICI2IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2VzdCIgPSBjKCI4IiwgIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfRiA9IGN1dChBR0UsIGMoMCwgNTQsIDY0LCA3NCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfNDAgPSBjdXQoQUdFLCBjKDAsIDQwLCAxMDApKSkgJT4lCiAgICAgICAgbXV0YXRlKFNFWF9GID0gZmN0X3JlY29kZShTRVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hbGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGZW1hbGUiID0gIjIiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBQ0VfRiA9IGZjdF9jb2xsYXBzZShSQUNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXaGl0ZSIgPSBjKCIwMSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCbGFjayIgPSBjKCIwMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc2lhbiIgPSBjKCIwNCIsICIwNSIsICIwNiIsICIwNyIsICIwOCIsICIxMCIsICIxMSIsICIxMiIsICIxMyIsICIxNCIsICIxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE2IiwgIjE3IiwgIjIwIiwgIjIxIiwgIjIyIiwgIjI1IiwgIjI2IiwgIjI3IiwgIjI4IiwgIjMwIiwgIjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMzIiLCAiOTYiLCAiOTciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIvVW5rIiA9IGMoIjAzIiwgIjk4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSElTUEFOSUMgPSBmY3RfY29sbGFwc2UoU1BBTklTSF9ISVNQQU5JQ19PUklHSU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9IGMoIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWNvZGUoSU5TVVJBTkNFX1NUQVRVUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1lZGljYXJlIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgR292ZXJubWVudCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOU1VSQU5DRV9GID0gZmN0X3JlbGV2ZWwoSU5TVVJBTkNFX0YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOQ09NRV9GID0gZmN0X3JlY29kZShNRURfSU5DX1FVQVJfMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiAkMzgsMDAwIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDM4LDAwMCAtICQ0Nyw5OTkiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNDgsMDAwIC0gJDYyLDk5OSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQ2MywwMDAgKyIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoRURVQ0FUSU9OX0YgPSBmY3RfcmVjb2RlKE5PX0hTRF9RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIxJSBvciBtb3JlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMyAtIDIwLjklIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI3IC0gMTIuOSUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiA3JSIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoVV9SX0YgPSBmY3RfY29sbGFwc2UoVVJfQ0RfMTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZXRybyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXJiYW4iID0gYygiNCIsICI1IiwgIjYiLCAiNyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVyYWwiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQ0xBU1NfT0ZfQ0FTRV9GID0gZmN0X2NvbGxhcHNlKENMQVNTX09GX0NBU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxfUGFydF9QcmltID0gYygiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE0IiwgIjIwIiwgIjIxIiwgIjIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlcl9GYWNpbGl0eSA9IGMoIjAwIikpKSAlPiUKICAgICAgICBtdXRhdGUoR1JBREVfRiA9IGZjdF9yZWNvZGUoR1JBREUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSTogV2VsbCBEaWZmIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSTogTW9kIERpZmYiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIElJSTogUG9vciBEaWZmIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJVjogVW5kaWZmL0FuYXBsYXN0aWMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5BL1Vua293biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmY3RfaW5mcmVxKEhJU1RPTE9HWSkpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRiA9IGZhY3RvcihISVNUT0xPR1lfRikpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRl9MSU0gPSBmY3RfbHVtcChISVNUT0xPR1lfRiwgcHJvcCA9IDAuMDUpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fVCA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVsZXZlbChUTk1fQ0xJTl9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX04gPSBmY3RfcmVjb2RlKFROTV9DTElOX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9NID0gZmN0X3JlY29kZShUTk1fQ0xJTl9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfVCA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVsZXZlbChUTk1fUEFUSF9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX04gPSBmY3RfcmVjb2RlKFROTV9QQVRIX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9NID0gZmN0X3JlY29kZShUTk1fUEFUSF9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9DTElOX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOUyA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmVzaWR1YWwiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzaWR1YWwsIE5PUyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWNyb3Njb3BpYyBSZXNpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWNyb3Njb3BpYyBSZXNpZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3QgZXZhbHVhYmxlIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmciID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOU19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcvVW5rL05BIiA9IGMoIjciLCAiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBRE1fSE9TUF8zMF9EQVlTX0YgPSBmY3RfcmVjb2RlKFJFQURNX0hPU1BfMzBfREFZUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnX29yX05vX1JlYWRtaXQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucGxhbl9SZWFkbWl0X1NhbWUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYW5fUmVhZG1pdF9TYW1lIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuVW5wbGFuX1NhbWUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX1NVTU1fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtIFJhZGlhdGlvbiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2FjdGl2ZSBJbXBsYW50cyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2lzb3RvcGVzIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJlYW0gKyBJbXAgb3IgSXNvdG9wZXMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaWF0aW9uLCBOT1MiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzMwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl8zMF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV8zMCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF8zMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzkwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl85MF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV85MCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF85MCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiA9IGZjdF9yZWNvZGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWdfTHltcGhWYXNjX0ludiIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQb3NfTHVtcGhWYXNjX0ludiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GID0gZmN0X3JlY29kZShSWF9IT1NQX1NVUkdfQVBQUl8yMDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfQXNzaXN0IiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfdG9fT3BlbiIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5kb19MYXBfdG9fT3BlbiIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW5fVW5rbm93biIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9ICJBbGwiKSAlPiUKICAgICAgICBtdXRhdGUoQWxsID0gZmFjdG9yKEFsbCkpICU+JQogICAgICAgIG11dGF0ZShSRUFTT05fRk9SX05PX1NVUkdFUllfRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcGVyZm9ybWVkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZyBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZywgcHQgZGllZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHVuayBpZiBkb25lIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShTVVJHRVJZX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVa24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1RGID0gY2FzZV93aGVuKFNVUkdFUllfWU4gPT0gIlllcyIgfiBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUkdFUllfWU4gPT0gIk5vIiB+IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBOQSkpICAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT05fRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkIGR1ZSB0byBwdCBmYWN0b3JzIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBSYWQsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBwdCByZWZ1c2VkIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUkFESUFUSU9OX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkVBU09OX0ZPUl9OT19SQURJQVRJT04gPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR1JBRF9TRVFfRiA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHUkFEX1NFUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgb3IgU3VyZyBvciBSYWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBTdXJnIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgYmVmb3JlIFJhZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIHBsdXMgb3RoZXIiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVEgPSBmY3RfcmVsZXZlbChTVVJHX1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIikpICU+JQogICAgICAgIG11dGF0ZShDSEVNT19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX0NIRU1PLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMDAiLCAiODIiLCAiODUiLCAiODYiLCAiODciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIwMSIsICIwMiIsICIwMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiA9IGMoIjg4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcsIE5vIHJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJBRElBVElPTl9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkLCBObyBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gU3VyZywgTm8gUmFkLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjMiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVFfQyA9IGZjdF9pbmZyZXEoU1VSR19SQURfU0VRX0MpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gYXMubnVtZXJpYyhUVU1PUl9TSVpFKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGlmZWxzZShUX1NJWkUgPT0gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPiAwICYgVF9TSVpFIDwgMTAgfCBUX1NJWkUgPT0gOTkxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCAxIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAxMCAmIFRfU0laRSA8IDIwIHwgVF9TSVpFID09IDk5MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxLTIgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAyMCAmIFRfU0laRSA8IDMwIHwgVF9TSVpFID09IDk5MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMi0zIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDMwICYgVF9TSVpFIDwgNDAgfCBUX1NJWkUgPT0gOTk0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA0MCAmIFRfU0laRSA8IDUwIHwgVF9TSVpFID09IDk5NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA1MCAmIFRfU0laRSA8IDYwIHwgVF9TSVpFID09IDk5NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNS02IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDYwICYgVF9TSVpFIDw9IDk4NyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9TSVpFID09IDk4MCB8IFRfU0laRSA9PSA5ODkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5OTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj42IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID09IDk4OCB8IFRfU0laRSA9PSA5OTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQV91bmsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgZm9jdXMiKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmFjdG9yKFRfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBmY3RfcmVsZXZlbChUX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLCAiTWljcm9zY29waWMgZm9jdXMiLCAiPCAxIGNtIiwgIjEtMiBjbSIsICIyLTMgY20iLCAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQtNSBjbSIsICI1LTYgY20iLCAiPjYgY20iLCAiTkFfdW5rIikpICU+JQogICAgICAgIG11dGF0ZShtZXRzX2F0X2R4ID0gY2FzZV93aGVuKENTX01FVFNfRFhfTFVORyA9PSAiMSIgfiAiTHVuZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CT05FID09ICIxIiB+ICJCb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU19NRVRTX0RYX0JSQUlOID09ICIxIiB+ICJCcmFpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9MSVZFUiA9PSAiMSIgfiAiTGl2ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiTm9uZS9PdGhlci9VbmsvTkEiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1FRElDQUlEX0VYUE5fQ09ERSA9IGZjdF9yZWNvZGUoTUVESUNBSURfRVhQTl9DT0RFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb24tRXhwYW5zaW9uIFN0YXRlIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSmFuIDIwMTQgRXhwYW5zaW9uIFN0YXRlcyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cHByZXNzZWQgZm9yIEFnZXMgMCAtIDM5IiA9ICI5IikpICAlPiUKICAgICAgICBtdXRhdGUoRVhQTl9HUk9VUCA9ICBjYXNlX3doZW4oTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxNCIsICIyMDE1IikgfiAiUG9zdC1FeHBhbnNpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIiwgIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAwNCIsICIyMDA1IiwgIjIwMDYiLCAiMjAwNyIsICIyMDA4IiwgIjIwMDkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIk5vbi1FeHBhbnNpb24gU3RhdGUiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICVpbiUgYygiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIkV4Y2x1ZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFID09ICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgfiAiRXhjbHVkZSIpKSAlPiUKICAKICBtdXRhdGUocHJlXzIwMTQgPSBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSkgJT4lCiAgCiAgbXV0YXRlKG1ldHNfYXRfZHhfRiA9IGlmZWxzZShtZXRzX2F0X2R4ID09ICJOb25lL090aGVyL1Vuay9OQSIsIEZBTFNFLCBUUlVFKSkgJT4lIAogIAogIG11dGF0ZShUeF9ZTiA9IGlmZWxzZShTVVJHX1JBRF9TRVEgPT0gIk5vIFRyZWF0bWVudCIgJiBDSEVNT19ZTiA9PSAiTm8iLCBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShDSEVNT19ZTiA9PSAiVWtuIiwgTkEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSkpKQoKZmFjdF92YXJzXzIgPC0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiQUdFX0YiLCAiU0VYX0YiLCAiUkFDRV9GIiwKICAgICAgICAgICAgICAgICAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLAogICAgICAgICAgICAgICAgICJDRENDX1RPVEFMX0JFU1QiLCAiQ0xBU1NfT0ZfQ0FTRV9GIiwgIllFQVJfT0ZfRElBR05PU0lTIiwgIlBSSU1BUllfU0lURSIsICJISVNUT0xPR1kiLAogICAgICAgICAgICAgICAgICJCRUhBVklPUiIsICJHUkFERV9GIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLCAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLAogICAgICAgICAgICAgICAgICJNQVJHSU5TIiwgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsICJtZXRzX2F0X2R4IikKCgpkYXQgPC0gZGF0ICU+JQogICAgICAgIG11dGF0ZV9hdChmYWN0X3ZhcnNfMiwgZnVucyhmYWN0b3IoLikpKQoKYGBgCgoKIyBFeHRyYWN0IGRhdGEgb2YgaW50ZXJlc3QgCgpgYGB7cn0KIyBFTVBECnNpdGVfY29kZSA8LSBjKAogICNsaXAgIAogICJDMDAwIiwgIkMwMDEiLCAiQzAwMiIsICJDMDAzIiwgIkMwMDQiLCAiQzAwNSIsIkMwMDYiLCAiQzAwOCIsIkMwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojc2tpbi9tZWxhbm9tYQogICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojdmFnaW5hL3Z1bHZhCiAgIkM1MTAiLCAiQzUxMSIsICJDNTEyIiwgIkM1MTgiLCAiQzUxOSIsICJDNTI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiNwZW5pcwogIkM2MDAiLCAiQzYwMSIsICJDNjAyIiwgIkM2MDgiLCAiQzYwOSIsICJDNjM5IikKCmhpc3RvX2NvZGUgPC0gYygiODU0MiIpCmJlaGF2aW9yX2NvZGUgPC0gYygiMyIpCgpkYXRhIDwtIGRhdCAlPiUKICAgICAgICBmaWx0ZXIoQkVIQVZJT1IgJWluJSBiZWhhdmlvcl9jb2RlKSAlPiUKICAgICAgICBmaWx0ZXIoUFJJTUFSWV9TSVRFICVpbiUgc2l0ZV9jb2RlKSAlPiUKICAgICAgICBmaWx0ZXIoSElTVE9MT0dZICVpbiUgaGlzdG9fY29kZSkgJT4lCiMgICAgICAgIGZpbHRlcihBR0UgPj0gMTgpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShQVUZfVklUQUxfU1RBVFVTKSA9PSBGQUxTRSkgJT4lCiAgICAgICAgZmlsdGVyKGlzLm5hKERYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihTRVFVRU5DRV9OVU1CRVIgPT0gIjAwIikgCiMlPiUKIyAgICAgICAgZmlsdGVyKENMQVNTX09GX0NBU0UgJWluJSBjKCIxMCIsICIxMiIsICIxNCIsICIyMiIpKSAlPiUKIyAgICAgICAgZmlsdGVyKElOU1VSQU5DRV9TVEFUVVMgJWluJSBjKCIwIiwgIjEiLCAiMiIsICIzIiwgIjQiKSkKCm5vX0V4Y2x1ZGVzIDwtIGFzLmRhdGEuZnJhbWUoZGF0YSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoRVhQTl9HUk9VUCAhPSAiRXhjbHVkZSIpIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICU+JSBkcm9wbGV2ZWxzKCkpCgojZmlsZV9wYXRoIDwtIGMoIi9Vc2Vycy9iZWFzdGF0bGlmZS9Hb29nbGUgRHJpdmUvUGVubi9SZXNlYXJjaC9CYXJiaWVyaS9OQ0RCIikKI3NhdmUoZGF0YSwKIyAgICAgIGZpbGUgPSBwYXN0ZTAoZmlsZV9wYXRoLCAiL0VNUERfZGF0YS5SZGEiKSkKYGBgCgpgYGB7ciBsb2FkRGF0YX0KI2xvYWQoIkVNUERfZGF0YS5SZGEiKQpgYGAKCgoKCkRhdGEgaW5jbHVkaW5nIHNraW4gdHVtb3JzIHdhcyBvYnRhaW5lZCBmcm9tIHRoZSBOQ0JEIG9uIE9jdG9iZXIgNywgMjAxOS4gQ2FzZXMgdGhhdCB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgYW5hbHlzaXMgd2VyZSB0aG9zZSB3aXRoOgoKMS4gU2l0ZSBjb2RlczogYHIgc2l0ZV9jb2RlYAoyLiBIaXN0b2xvZ3kgY29kZXM6IGByIGhpc3RvX2NvZGVgCjMuIEJlaGF2aW9yIGNvZGVzOiBgciBiZWhhdmlvcl9jb2RlYAoKClBhdGllbnRzIHdlcmUgZXhjbHVkZWQgaWYgdGhleSBkaWRuJ3QgaGF2ZSB2YWx1ZXMgZm9yIGVpdGhlciBmb2xsb3cgdXAgb3Igdml0YWwgc3RhdHVzLgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGhhZCBzdXJnZXJ5IHRvIGEgZGlzdGFudCBzaXRlIHVzaW5nIGBSWF9TVU1NX1NVUkdfT1RIX1JFR0RJU2AuIFRoaXMgd2FzIGRvbmUgdG8gYXZvaWQgY29uZm91bmRpbmcgb2YgZGlmZmVyZW50IHN1cmdpY2FsIHByb2NlZHVyZXMuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gc3VyZ2VyeSBhdCB0aGUgcHJpbWFyeSBzaXRlLiBUaGVzZSBkaXN0YW50IHNpdGUgc3VyZ2VyaWVzIHdlcmUgYmVpbmcgY291bnRlZCBpbiB0aGUgc3VyZ2VyeS9yYWRpYXRpb24gc2VxdWVuY2UgYW5kIHRodXMgdG8gc2ltcGxpZnkgYW5hbHlzaXMgdGhleSB3ZXJlIHJlbW92ZWQuIAoKYGBge3J9CgpkYXRhICU+JQogICAgICAgIENyZWF0ZVRhYmxlT25lKGRhdGEgPSAuLAogICAgICAgICAgICAgICAgICAgICB2YXJzID0gYygiUlhfU1VNTV9TVVJHX09USF9SRUdESVMiKSwKICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZU5BID0gVFJVRSkgJT4lCiAgICAgICAgcHJpbnQoLiwKICAgICAgICAgICAgICBzaG93QWxsTGV2ZWxzID0gVFJVRSkKCmRhdGEgPC0gZGF0YSAlPiUKICAgICAgICBmaWx0ZXIoUlhfU1VNTV9TVVJHX09USF9SRUdESVMgPT0gIjAiKSAKYGBgCgoKUmFjZSB3YXMgZ3JvdXBlZCBhcyB3aGl0ZSwgYmxhY2ssIGFzaWFuLCBvdGhlci91bmtub3duClN0YWdlIHdhcyBncm91cGVkIGludG8gMCwgSSwgSUksIElJSSwgSVYsIE5BX1Vua25vd24sIHN0YWdlIDAgd2FzIHJlbW92ZWQKV2hldGhlciBzdXJnZXJ5IHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19TVVJHRVJZYCB2YXJpYWJsZS4gVGhlIGBTVVJHRVJZX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCldoZXRoZXIgcmFkaWF0aW9uIHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19SQURJQVRJT05gIHZhcmlhYmxlLiBUaGUgYFJBRElBVElPTl9ZTmAgdmFyaWFibGUgd2FzIGNsYXNzaWZpZWQgYXMgJ1llcycsICdObycsIG9yICdVbmtub3duJy4KCgoKIyNUYWJsZSBvZiB2YXJpYWJsZXMgZm9yIGFsbCBjYXNlczoKCmBgYHtyfQoKcF90YWJsZShkYXRhLAogICAgICAgIHZhcnMgPSBjKCJGQUNJTElUWV9UWVBFX0YiLCAiRkFDSUxJVFlfTE9DQVRJT05fRiIsICJGQUNJTElUWV9HRU9HUkFQSFkiLCAgIkFHRSIsICJBR0VfRiIsICJBR0VfNDAiLAogICAgICAgICAgICAgICAgICJTRVhfRiIsICJSQUNFX0YiLCAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAKICAgICAgICAgICAgICAgICAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLAogICAgICAgICAgICAgICAgICJTSVRFX1RFWFQiLCAgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiLCAiRVhQTl9HUk9VUCIsICJTSVRFX1RFWFQiKSkKCgoKcF90YWJsZShub19FeGNsdWRlcywKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlRfU0laRSIsICJTVVJHRVJZX1lOIiwgIlJBRElBVElPTl9ZTiIsICJDSEVNT19ZTiIsICJtZXRzX2F0X2R4IiwKICAgICAgICAgICAgICAgICAiTUVESUNBSURfRVhQTl9DT0RFIiwiU0lURV9URVhUIiksIAogICAgICAgIHN0cmF0YSA9ICJFWFBOX0dST1VQIikKCgpwX3RhYmxlKGRhdGEsCiAgICAgICAgdmFycyA9IGMoIllFQVJfT0ZfRElBR05PU0lTIiksCiAgICAgICAgc3RyYXRhID0gYygiTUVESUNBSURfRVhQTl9DT0RFIikpCmBgYAoKCgoKYGBge3J9CgpwcmVFeHBNZWRpY2FyZSAgPC0gbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKcG9zdEV4cE1lZGljYXJlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIiAmIElOU1VSQU5DRV9GID09ICJNZWRpY2FyZSIpKQoKIyBwID0gMC4yNSB3aGVuIGNvbXBhcmluZyBjaGFuZ2UgaW4gcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRoIE1lZGljYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgQUNBIGV4cGFuc2lvbgpwcm9wLnRlc3QoYyhwcmVFeHBNZWRpY2FyZSwgcG9zdEV4cE1lZGljYXJlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnByZUV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKcG9zdEV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihJTlNVUkFOQ0VfRiA9PSAiTm9uZSIpKQoKIyBTaWduaWZpY2FudCBkZWNyZWFzZSBpbiB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHBhdGllbnRzIHdpdGhvdXQgaW5zdXJhbmNlIGFmdGVyIEFDQSBleHBhbnNpb24gCnByb3AudGVzdChjKHByZUV4cE5vSW5zdXJhbmNlLCBwb3N0RXhwTm9JbnN1cmFuY2UpLCAKICAgICAgICAgIGMobnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIpKSwgbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUG9zdC1FeHBhbnNpb24iKSkpKQoKcF90YWJsZShub19FeGNsdWRlcywgc3RyYXRhID0gIkVYUE5fR1JPVVAiLCB2YXJzID0gIkRYX1JYX1NUQVJURURfREFZUyIpCgpkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShJbnN1cmVkID0gSU5TVVJBTkNFX0YgIT0gIlVua25vd24iKQoKYGBgCgoKCgojS2FwbGFuIE1laWVyIEFuYWx5c2lzCgoKIyNBbGwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFsbCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IFR5cGUKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfVFlQRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgTG9jYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBHZW9ncmFwaHkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0dFT0dSQVBIWSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFXzQwIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjR2VuZGVyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTRVhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JBQ0VfRgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFDRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSGlzcGFuaWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1BBTklDIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSW5zdXJhbmNlIFN0YXR1cwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSU5TVVJBTkNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNPdmVyYWxsIFN1cnZpdmFsIHByZS9wb3N0LUFDQSBleHBhbnNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVYUE5fR1JPVVAiLCBkYXRhX2ltcCA9IG5vX0V4Y2x1ZGVzKQpgYGAKCgo8IS0tICMjSW5jb21lIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gY2xhc3MoZGF0YSRJTkNPTUVfRikgLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNFZHVjYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVEVUNBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjVXJiYW4vUnVyYWwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlVfUl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xhc3MgKHRyZWF0bWVudCBhdCBwZXJmb3JtaW5nIGZhY2lsaXR5KQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0xBU1NfT0ZfQ0FTRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjWWVhcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiWUVBUl9PRl9ESUFHTk9TSVMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQcmltYXJ5IFNpdGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNJVEVfVEVYVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNIaXN0b2xvZ3kKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNUT0xPR1lfRl9MSU0iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0JlaGF2aW9yIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNHcmFkZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiR1JBREVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIFQgU3RhZ2UKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgTiBTdGFnZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBNIFN0YWdlCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgVCBTdGFnZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE4gU3RhZ2UKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9OIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBNIFN0YWdlCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucyBZZXMvTm8KYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlNfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyMzMCBEYXkgUmVhZG1pc3Npb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJFQURNX0hPU1BfMzBfREFZU19GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUmFkaWF0aW9uIFR5cGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX1NVTU1fUkFESUFUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjTHltcGhvdmFzY3VsYXIgSW52YXNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNFbmRvc2NvcGljL1JvYm90aWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1N1cmdlcnkgUmFkaWF0aW9uIFNlcXVlbmNlIAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR19SQURfU0VRIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNVUkdFUllfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSQURJQVRJT05fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDaGVtbyBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNIRU1PX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI1RyZWF0bWVudCBZZXMvTm8KYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVHhfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNZXRhc3Rhc2VzIGF0IER4CmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIm1ldHNfYXRfZHhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjVHVtb3IgU2l6ZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVF9TSVpFIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojVHVtb3Igc3BlY2lmaWMgVmFyaWFibGVzCgoKIyMjTm9kZSBTaXplCgoKI0NveCBQcm9wb3J0aW9uYWwgSGF6YXJkIFJhdGlvCgojI01vZGVsICMxCgojIyNGdWxsIGFuYWx5c2lzCgpgYGB7cn0KbW9kZWxfb25lIDwtIGNveHBoKFN1cnYoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTLCBQVUZfVklUQUxfU1RBVFVTID09IDApCiAgICAgICAgICAgICAgICAgICAgIH4gU1VSR19SQURfU0VRICsgSU5TVVJBTkNFX0YgKyBBR0UgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GLAogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSkKbW9kZWxfb25lICU+JSBzdW1tYXJ5KCkKCgpgYGAKCiMjI1N1bW1hcnkgb2YgTW9kZWwKCmBgYHtyfQptb2RlbF9vbmUgJT4lCiAgICAgICAgdGlkeSguLCBleHBvbmVudGlhdGUgPSBUUlVFKSAlPiUKICAgICAgICBzZWxlY3QodGVybSwgZXN0aW1hdGUsIGNvbmYubG93LCBjb25mLmhpZ2gsIHAudmFsdWUpICU+JQogICAgICAgIHJlbmFtZShWYXJpYWJsZSA9IHRlcm0sCiAgICAgICAgICAgICAgIEhhemFyZF9SYXRpbyA9IGVzdGltYXRlKSAlPiUKICAgICAgICB0YmxfZGYgJT4lCiAgICAgICAgcHJpbnQobiA9IG5yb3coLikpCgpgYGAKCiMgUHJlZGljdGlvbiBMb2dpc3RpYyBSZWdyZXNzaW9uIE1vZGVscwoKIyMgU3VyZ2VyeQpgYGB7cn0KCm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoU1VSR0VSWV9ZTiAhPSAiVWtuIikgJT4lIAogIGRyb3BsZXZlbHMoKSAlPiUgCiAgbXV0YXRlKFNVUkdFUllfWU4gPSBhcy5sb2dpY2FsKFNVUkdFUllfWU4pKQoKZml0X3N1cmcgPC0gZ2xtKFNVUkdfVEYgfiBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQLAogICBkYXRhID0gbm9fVWtucykKCnN1bW1hcnkoZml0X3N1cmcpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfc3VyZyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYAoKIyMgTWV0YXN0YXNpcyBhdCBUaW1lIG9mIERpYWdub3NpcwpgYGB7cn0KIyBsaW1pdCB0byB0aG9zZSBjYXNlcyB3aGVyZSBkYXRhIGFib3V0IGV4cGFuc2lvbiBzdGF0dXMgaXMgYXZhaWxhYmxlICg+IEFnZSAzOSwgbm9uLWFtYmlndW91cyBzdGF0dXMgc3RhdGVzKQoKZml0X21ldHMgPC0gZ2xtKG1ldHNfYXRfZHhfRiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBkYXRhKQoKc3VtbWFyeShmaXRfbWV0cykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9tZXRzKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojU2FtZSBidXQgZm9yIEJyZWFzdAoKYGBge3J9CnByaW1fc2l0ZV90ZXh0IDwtIGRhdGFfZnJhbWUoUFJJTUFSWV9TSVRFID0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoI2JyZWFzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNTAwIiwgIkM1MDEiLCAiQzUwMiIsIkM1MDMiLCJDNTA0IiwiQzUwNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNTA2IiwiQzUwOCIsIkM1MDkiKSwKClNJVEVfVEVYVCA9IGMoCiNicmVhc3QKIkM1MC4wIE5pcHBsZSIsCiJDNTAuMSBDZW50cmFsIHBvcnRpb24gb2YgYnJlYXN0IiwKIkM1MC4yIFVwcGVyLWlubmVyIHF1YWRyYW50IGJyZWFzdCIsCiJDNTAuMyBMb3dlci1pbm5lciBxdWFkcmFudCBicmVhc3QiLAoiQzUwLjQgVXBwZXItb3V0ZXIgcXVhZHJhbnQgYnJlYXN0IiwKIkM1MC41IExvd2VyLW91dGVyIHF1YWRyYW50IiwKIkM1MC42IEF4aWxsYXJ5IHRhaWwgb2YgYnJlYXN0IiwgCiJDNTAuOCBPdmVybGFwcGluZyBsZXNpb24gb2YgYnJlYXN0IiwKIkM1MC45IEJyZWFzdCBOT1MiKSkKCgpkYXQgPC0gbWVyZ2UoZGF0LCBwcmltX3NpdGVfdGV4dCwgYnkgPSAiUFJJTUFSWV9TSVRFIiwgYWxsLnggPSBUUlVFKSAKIApybShwcmltX3NpdGVfdGV4dCkKCiMgY29udmVydCBudW1lcmljIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBudW1lcmljIGNsYXNzCm51bV92YXJzIDwtIGMoIkFHRSIsICJDUk9XRkxZIiwgIlRVTU9SX1NJWkUiLCAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsICJEWF9SQURfU1RBUlRFRF9EQVlTIiwgICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLAogICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX0VMQVBTRURfUlhfREFZUyIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgCiAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIkRYX09USEVSX1NUQVJURURfREFZUyIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLAogICAgICAgICAgICAgICJSQURfTlVNX1RSRUFUX1ZPTCIpCgpkYXRbbnVtX3ZhcnNdIDwtIGxhcHBseShkYXRbbnVtX3ZhcnNdLCBhcy5udW1lcmljKQoKCiMgY29udmVydCBmYWN0b3IgdmFyaWFibGVzIGZyb20gY2hhcmFjdGVyIGNsYXNzIHRvIGZhY3RvciBjbGFzcwp2YXJzIDwtIG5hbWVzKGRhdCkKZmFjdF92YXJzIDwtIHZhcnNbISh2YXJzICVpbiUgbnVtX3ZhcnMpXSAjIGJhc2ljYWxseSBhbGwgb2YgdGhlIG5vbi1udW1lcmljcwoKZGF0W2ZhY3RfdmFyc10gPC0gbGFwcGx5KGRhdFtmYWN0X3ZhcnNdLCBhcy5jaGFyYWN0ZXIpCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuZmFjdG9yKQoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfVFlQRV9GID0gZmN0X3JlY29kZShGQUNJTElUWV9UWVBFX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tdW5pdHkgQ2FuY2VyIFByb2dyYW0iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21wcmVoZW5zaXZlIENvbW0gQ2EgUHJvZ3JhbSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjYWRlbWljL1Jlc2VhcmNoIFByb2dyYW0iID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlZ3JhdGVkIE5ldHdvcmsgQ2EgUHJvZ3JhbSIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShGQUNJTElUWV9MT0NBVElPTl9GID0gZmN0X3JlY29kZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IEVuZ2xhbmQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWRkbGUgQXRsYW50aWMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCBBdGxhbnRpYyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgTm9ydGggQ2VudHJhbCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgU291dGggQ2VudHJhbCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgTm9ydGggQ2VudHJhbCIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgU291dGggQ2VudHJhbCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vdW50YWluIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyIgPSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dCBvZiBVUyIgPSAiMCIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfR0VPR1JBUEhZID0gZmN0X2NvbGxhcHNlKEZBQ0lMSVRZX0xPQ0FUSU9OX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vcnRoZWFzdCIgPSBjKCIxIiwgIjIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCIgPSBjKCIzIiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWR3ZXN0IiA9IGMoIjQiLCAiNSIsICI2IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2VzdCIgPSBjKCI4IiwgIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfRiA9IGN1dChBR0UsIGMoMCwgNTQsIDY0LCA3NCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfNDAgPSBjdXQoQUdFLCBjKDAsIDQwLCAxMDApKSkgJT4lCiAgICAgICAgbXV0YXRlKFNFWF9GID0gZmN0X3JlY29kZShTRVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hbGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGZW1hbGUiID0gIjIiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBQ0VfRiA9IGZjdF9jb2xsYXBzZShSQUNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXaGl0ZSIgPSBjKCIwMSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCbGFjayIgPSBjKCIwMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc2lhbiIgPSBjKCIwNCIsICIwNSIsICIwNiIsICIwNyIsICIwOCIsICIxMCIsICIxMSIsICIxMiIsICIxMyIsICIxNCIsICIxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE2IiwgIjE3IiwgIjIwIiwgIjIxIiwgIjIyIiwgIjI1IiwgIjI2IiwgIjI3IiwgIjI4IiwgIjMwIiwgIjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMzIiLCAiOTYiLCAiOTciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIvVW5rIiA9IGMoIjAzIiwgIjk4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSElTUEFOSUMgPSBmY3RfY29sbGFwc2UoU1BBTklTSF9ISVNQQU5JQ19PUklHSU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9IGMoIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWNvZGUoSU5TVVJBTkNFX1NUQVRVUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1lZGljYXJlIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgR292ZXJubWVudCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOU1VSQU5DRV9GID0gZmN0X3JlbGV2ZWwoSU5TVVJBTkNFX0YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOQ09NRV9GID0gZmN0X3JlY29kZShNRURfSU5DX1FVQVJfMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiAkMzgsMDAwIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDM4LDAwMCAtICQ0Nyw5OTkiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNDgsMDAwIC0gJDYyLDk5OSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQ2MywwMDAgKyIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoRURVQ0FUSU9OX0YgPSBmY3RfcmVjb2RlKE5PX0hTRF9RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIxJSBvciBtb3JlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMyAtIDIwLjklIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI3IC0gMTIuOSUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiA3JSIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoVV9SX0YgPSBmY3RfY29sbGFwc2UoVVJfQ0RfMTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZXRybyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXJiYW4iID0gYygiNCIsICI1IiwgIjYiLCAiNyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVyYWwiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQ0xBU1NfT0ZfQ0FTRV9GID0gZmN0X2NvbGxhcHNlKENMQVNTX09GX0NBU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxfUGFydF9QcmltID0gYygiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE0IiwgIjIwIiwgIjIxIiwgIjIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlcl9GYWNpbGl0eSA9IGMoIjAwIikpKSAlPiUKICAgICAgICBtdXRhdGUoR1JBREVfRiA9IGZjdF9yZWNvZGUoR1JBREUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSTogV2VsbCBEaWZmIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSTogTW9kIERpZmYiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIElJSTogUG9vciBEaWZmIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJVjogVW5kaWZmL0FuYXBsYXN0aWMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5BL1Vua293biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmY3RfaW5mcmVxKEhJU1RPTE9HWSkpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRiA9IGZhY3RvcihISVNUT0xPR1lfRikpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRl9MSU0gPSBmY3RfbHVtcChISVNUT0xPR1lfRiwgcHJvcCA9IDAuMDUpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fVCA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVsZXZlbChUTk1fQ0xJTl9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX04gPSBmY3RfcmVjb2RlKFROTV9DTElOX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9NID0gZmN0X3JlY29kZShUTk1fQ0xJTl9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfVCA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVsZXZlbChUTk1fUEFUSF9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX04gPSBmY3RfcmVjb2RlKFROTV9QQVRIX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9NID0gZmN0X3JlY29kZShUTk1fUEFUSF9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9DTElOX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOUyA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmVzaWR1YWwiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzaWR1YWwsIE5PUyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWNyb3Njb3BpYyBSZXNpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWNyb3Njb3BpYyBSZXNpZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3QgZXZhbHVhYmxlIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmciID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOU19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcvVW5rL05BIiA9IGMoIjciLCAiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBRE1fSE9TUF8zMF9EQVlTX0YgPSBmY3RfcmVjb2RlKFJFQURNX0hPU1BfMzBfREFZUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnX29yX05vX1JlYWRtaXQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucGxhbl9SZWFkbWl0X1NhbWUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYW5fUmVhZG1pdF9TYW1lIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuVW5wbGFuX1NhbWUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX1NVTU1fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtIFJhZGlhdGlvbiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2FjdGl2ZSBJbXBsYW50cyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2lzb3RvcGVzIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJlYW0gKyBJbXAgb3IgSXNvdG9wZXMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaWF0aW9uLCBOT1MiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzMwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl8zMF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV8zMCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF8zMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzkwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl85MF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV85MCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF85MCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiA9IGZjdF9yZWNvZGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWdfTHltcGhWYXNjX0ludiIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQb3NfTHVtcGhWYXNjX0ludiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GID0gZmN0X3JlY29kZShSWF9IT1NQX1NVUkdfQVBQUl8yMDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfQXNzaXN0IiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfdG9fT3BlbiIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5kb19MYXBfdG9fT3BlbiIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW5fVW5rbm93biIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9ICJBbGwiKSAlPiUKICAgICAgICBtdXRhdGUoQWxsID0gZmFjdG9yKEFsbCkpICU+JQogICAgICAgIG11dGF0ZShSRUFTT05fRk9SX05PX1NVUkdFUllfRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcGVyZm9ybWVkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZyBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZywgcHQgZGllZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHVuayBpZiBkb25lIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShTVVJHRVJZX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVa24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1RGID0gY2FzZV93aGVuKFNVUkdFUllfWU4gPT0gIlllcyIgfiBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUkdFUllfWU4gPT0gIk5vIiB+IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBOQSkpICAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT05fRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkIGR1ZSB0byBwdCBmYWN0b3JzIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBSYWQsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBwdCByZWZ1c2VkIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUkFESUFUSU9OX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkVBU09OX0ZPUl9OT19SQURJQVRJT04gPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR1JBRF9TRVFfRiA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHUkFEX1NFUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgb3IgU3VyZyBvciBSYWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBTdXJnIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgYmVmb3JlIFJhZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIHBsdXMgb3RoZXIiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVEgPSBmY3RfcmVsZXZlbChTVVJHX1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIikpICU+JQogICAgICAgIG11dGF0ZShDSEVNT19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX0NIRU1PLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMDAiLCAiODIiLCAiODUiLCAiODYiLCAiODciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIwMSIsICIwMiIsICIwMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiA9IGMoIjg4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcsIE5vIHJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJBRElBVElPTl9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkLCBObyBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gU3VyZywgTm8gUmFkLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjMiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVFfQyA9IGZjdF9pbmZyZXEoU1VSR19SQURfU0VRX0MpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gYXMubnVtZXJpYyhUVU1PUl9TSVpFKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGlmZWxzZShUX1NJWkUgPT0gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPiAwICYgVF9TSVpFIDwgMTAgfCBUX1NJWkUgPT0gOTkxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCAxIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAxMCAmIFRfU0laRSA8IDIwIHwgVF9TSVpFID09IDk5MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxLTIgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAyMCAmIFRfU0laRSA8IDMwIHwgVF9TSVpFID09IDk5MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMi0zIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDMwICYgVF9TSVpFIDwgNDAgfCBUX1NJWkUgPT0gOTk0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA0MCAmIFRfU0laRSA8IDUwIHwgVF9TSVpFID09IDk5NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA1MCAmIFRfU0laRSA8IDYwIHwgVF9TSVpFID09IDk5NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNS02IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDYwICYgVF9TSVpFIDw9IDk4NyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9TSVpFID09IDk4MCB8IFRfU0laRSA9PSA5ODkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5OTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj42IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID09IDk4OCB8IFRfU0laRSA9PSA5OTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQV91bmsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgZm9jdXMiKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmFjdG9yKFRfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBmY3RfcmVsZXZlbChUX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLCAiTWljcm9zY29waWMgZm9jdXMiLCAiPCAxIGNtIiwgIjEtMiBjbSIsICIyLTMgY20iLCAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQtNSBjbSIsICI1LTYgY20iLCAiPjYgY20iLCAiTkFfdW5rIikpICU+JQogICAgICAgIG11dGF0ZShtZXRzX2F0X2R4ID0gY2FzZV93aGVuKENTX01FVFNfRFhfTFVORyA9PSAiMSIgfiAiTHVuZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CT05FID09ICIxIiB+ICJCb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU19NRVRTX0RYX0JSQUlOID09ICIxIiB+ICJCcmFpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9MSVZFUiA9PSAiMSIgfiAiTGl2ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiTm9uZS9PdGhlci9VbmsvTkEiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1FRElDQUlEX0VYUE5fQ09ERSA9IGZjdF9yZWNvZGUoTUVESUNBSURfRVhQTl9DT0RFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb24tRXhwYW5zaW9uIFN0YXRlIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSmFuIDIwMTQgRXhwYW5zaW9uIFN0YXRlcyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cHByZXNzZWQgZm9yIEFnZXMgMCAtIDM5IiA9ICI5IikpICAlPiUKICAgICAgICBtdXRhdGUoRVhQTl9HUk9VUCA9ICBjYXNlX3doZW4oTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxNCIsICIyMDE1IikgfiAiUG9zdC1FeHBhbnNpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIiwgIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAwNCIsICIyMDA1IiwgIjIwMDYiLCAiMjAwNyIsICIyMDA4IiwgIjIwMDkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIk5vbi1FeHBhbnNpb24gU3RhdGUiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICVpbiUgYygiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIkV4Y2x1ZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFID09ICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgfiAiRXhjbHVkZSIpKSAlPiUKICAKICBtdXRhdGUocHJlXzIwMTQgPSBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSkgJT4lCiAgCiAgbXV0YXRlKG1ldHNfYXRfZHhfRiA9IGlmZWxzZShtZXRzX2F0X2R4ID09ICJOb25lL090aGVyL1Vuay9OQSIsIEZBTFNFLCBUUlVFKSkgJT4lIAogIAogIG11dGF0ZShUeF9ZTiA9IGlmZWxzZShTVVJHX1JBRF9TRVEgPT0gIk5vIFRyZWF0bWVudCIgJiBDSEVNT19ZTiA9PSAiTm8iLCBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShDSEVNT19ZTiA9PSAiVWtuIiwgTkEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSkpKQoKZmFjdF92YXJzXzIgPC0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiQUdFX0YiLCAiU0VYX0YiLCAiUkFDRV9GIiwKICAgICAgICAgICAgICAgICAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLAogICAgICAgICAgICAgICAgICJDRENDX1RPVEFMX0JFU1QiLCAiQ0xBU1NfT0ZfQ0FTRV9GIiwgIllFQVJfT0ZfRElBR05PU0lTIiwgIlBSSU1BUllfU0lURSIsICJISVNUT0xPR1kiLAogICAgICAgICAgICAgICAgICJCRUhBVklPUiIsICJHUkFERV9GIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLCAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLAogICAgICAgICAgICAgICAgICJNQVJHSU5TIiwgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsICJtZXRzX2F0X2R4IikKCgpkYXQgPC0gZGF0ICU+JQogICAgICAgIG11dGF0ZV9hdChmYWN0X3ZhcnNfMiwgZnVucyhmYWN0b3IoLikpKQoKYGBgCgoKIyBFeHRyYWN0IGRhdGEgb2YgaW50ZXJlc3QgCgpgYGB7cn0KIyBNUEQKc2l0ZV9jb2RlIDwtIGMoCiAjYnJlYXN0CiAgIkM1MDAiLCAiQzUwMSIsICJDNTAyIiwiQzUwMyIsIkM1MDQiLCJDNTA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM1MDYiLCJDNTA4IiwiQzUwOSIpCgpoaXN0b19jb2RlIDwtIGMoIjg1NDAiKQpiZWhhdmlvcl9jb2RlIDwtIGMoIjMiKQoKZGF0YSA8LSBkYXQgJT4lCiAgICAgICAgZmlsdGVyKEJFSEFWSU9SICVpbiUgYmVoYXZpb3JfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKFBSSU1BUllfU0lURSAlaW4lIHNpdGVfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKEhJU1RPTE9HWSAlaW4lIGhpc3RvX2NvZGUpICU+JQojICAgICAgICBmaWx0ZXIoQUdFID49IDE4KSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoUFVGX1ZJVEFMX1NUQVRVUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMpID09IEZBTFNFKSAlPiUKICAgICAgICBmaWx0ZXIoU0VRVUVOQ0VfTlVNQkVSID09ICIwMCIpIAoKbm9fRXhjbHVkZXMgPC0gYXMuZGF0YS5mcmFtZShkYXRhICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihFWFBOX0dST1VQICE9ICJFeGNsdWRlIikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJT4lIGRyb3BsZXZlbHMoKSkKCgojZmlsZV9wYXRoIDwtIGMoIi9Vc2Vycy9iZWFzdGF0bGlmZS9Hb29nbGUgRHJpdmUvUGVubi9SZXNlYXJjaC9CYXJiaWVyaS9OQ0RCIikKI3NhdmUoZGF0YSwKIyAgICAgIGZpbGUgPSBwYXN0ZTAoZmlsZV9wYXRoLCAiL2JyZWFzdF9kYXRhLlJkYSIpKQpgYGAKCmBgYHtyIGxvYWREYXRhMn0KI2xvYWQoIkVNUERfZGF0YS5SZGEiKQpgYGAKCgoKCkRhdGEgaW5jbHVkaW5nIHNraW4gdHVtb3JzIHdhcyBvYnRhaW5lZCBmcm9tIHRoZSBOQ0JEIG9uIE9jdG9iZXIgNywgMjAxOS4gQ2FzZXMgdGhhdCB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgYW5hbHlzaXMgd2VyZSB0aG9zZSB3aXRoOgoKMS4gU2l0ZSBjb2RlczogYHIgc2l0ZV9jb2RlYAoyLiBIaXN0b2xvZ3kgY29kZXM6IGByIGhpc3RvX2NvZGVgCjMuIEJlaGF2aW9yIGNvZGVzOiBgciBiZWhhdmlvcl9jb2RlYAoKClBhdGllbnRzIHdlcmUgZXhjbHVkZWQgaWYgdGhleSBkaWRuJ3QgaGF2ZSB2YWx1ZXMgZm9yIGVpdGhlciBmb2xsb3cgdXAgb3Igdml0YWwgc3RhdHVzLgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGhhZCBzdXJnZXJ5IHRvIGEgZGlzdGFudCBzaXRlIHVzaW5nIGBSWF9TVU1NX1NVUkdfT1RIX1JFR0RJU2AuIFRoaXMgd2FzIGRvbmUgdG8gYXZvaWQgY29uZm91bmRpbmcgb2YgZGlmZmVyZW50IHN1cmdpY2FsIHByb2NlZHVyZXMuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gc3VyZ2VyeSBhdCB0aGUgcHJpbWFyeSBzaXRlLiBUaGVzZSBkaXN0YW50IHNpdGUgc3VyZ2VyaWVzIHdlcmUgYmVpbmcgY291bnRlZCBpbiB0aGUgc3VyZ2VyeS9yYWRpYXRpb24gc2VxdWVuY2UgYW5kIHRodXMgdG8gc2ltcGxpZnkgYW5hbHlzaXMgdGhleSB3ZXJlIHJlbW92ZWQuIAoKYGBge3J9CgpkYXRhICU+JQogICAgICAgIENyZWF0ZVRhYmxlT25lKGRhdGEgPSAuLAogICAgICAgICAgICAgICAgICAgICB2YXJzID0gYygiUlhfU1VNTV9TVVJHX09USF9SRUdESVMiKSwKICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZU5BID0gVFJVRSkgJT4lCiAgICAgICAgcHJpbnQoLiwKICAgICAgICAgICAgICBzaG93QWxsTGV2ZWxzID0gVFJVRSkKCmRhdGEgPC0gZGF0YSAlPiUKICAgICAgICBmaWx0ZXIoUlhfU1VNTV9TVVJHX09USF9SRUdESVMgPT0gIjAiKSAKYGBgCgoKUmFjZSB3YXMgZ3JvdXBlZCBhcyB3aGl0ZSwgYmxhY2ssIGFzaWFuLCBvdGhlci91bmtub3duClN0YWdlIHdhcyBncm91cGVkIGludG8gMCwgSSwgSUksIElJSSwgSVYsIE5BX1Vua25vd24sIHN0YWdlIDAgd2FzIHJlbW92ZWQKV2hldGhlciBzdXJnZXJ5IHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19TVVJHRVJZYCB2YXJpYWJsZS4gVGhlIGBTVVJHRVJZX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCldoZXRoZXIgcmFkaWF0aW9uIHdhcyBwZXJmb3JtZWQgd2FzIGJhc2VkIG9uIHRoZSBgUkVBU09OX0ZPUl9OT19SQURJQVRJT05gIHZhcmlhYmxlLiBUaGUgYFJBRElBVElPTl9ZTmAgdmFyaWFibGUgd2FzIGNsYXNzaWZpZWQgYXMgJ1llcycsICdObycsIG9yICdVbmtub3duJy4KCgoKIyNUYWJsZSBvZiB2YXJpYWJsZXMgZm9yIGFsbCBjYXNlczoKCiNUYWJsZSBvZiB2YXJpYWJsZXMgZm9yIGFsbCBjYXNlczoKCmBgYHtyfQoKcF90YWJsZShkYXRhLAogICAgICAgIHZhcnMgPSBjKCJGQUNJTElUWV9UWVBFX0YiLCAiRkFDSUxJVFlfTE9DQVRJT05fRiIsICJGQUNJTElUWV9HRU9HUkFQSFkiLCAgIkFHRSIsICJBR0VfRiIsICJBR0VfNDAiLAogICAgICAgICAgICAgICAgICJTRVhfRiIsICJSQUNFX0YiLCAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAKICAgICAgICAgICAgICAgICAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLAogICAgICAgICAgICAgICAgICJTSVRFX1RFWFQueSIsICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsCiAgICAgICAgICAgICAgICAgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsICJNQVJHSU5TIiwgIk1BUkdJTlNfWU4iLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsCiAgICAgICAgICAgICAgICAgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAKICAgICAgICAgICAgICAgICAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAiU1VSR19SQURfU0VRIiwKICAgICAgICAgICAgICAgICAiU1VSR19SQURfU0VRX0MiLCAiU1VSR0VSWV9ZTiIsICJSQURJQVRJT05fWU4iLCAiQ0hFTU9fWU4iLCAibWV0c19hdF9keCIsCiAgICAgICAgICAgICAgICAgIk1FRElDQUlEX0VYUE5fQ09ERSIsICJFWFBOX0dST1VQIikpCgoKcF90YWJsZShkYXRhLAogICAgICAgIHZhcnMgPSBjKCJZRUFSX09GX0RJQUdOT1NJUyIpLAogICAgICAgIHN0cmF0YSA9IGMoIk1FRElDQUlEX0VYUE5fQ09ERSIpKQpgYGAKCgoKCmBgYHtyfQoKcHJlRXhwTWVkaWNhcmUgIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iICYgSU5TVVJBTkNFX0YgPT0gIk1lZGljYXJlIikpCnBvc3RFeHBNZWRpY2FyZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKCiMgcCA9IDAuMjUgd2hlbiBjb21wYXJpbmcgY2hhbmdlIGluIHByb3BvcnRpb24gb2YgcGF0aWVudHMgd2l0aCBNZWRpY2FyZSBiZWZvcmUgYW5kIGFmdGVyIEFDQSBleHBhbnNpb24KcHJvcC50ZXN0KGMocHJlRXhwTWVkaWNhcmUsIHBvc3RFeHBNZWRpY2FyZSksIAogICAgICAgICAgYyhucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikpLCBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpKSkpCgpwcmVFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKElOU1VSQU5DRV9GID09ICJOb25lIikpCnBvc3RFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKCiMgU2lnbmlmaWNhbnQgZGVjcmVhc2UgaW4gdGhlIG92ZXJhbGwgcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRob3V0IGluc3VyYW5jZSBhZnRlciBBQ0EgZXhwYW5zaW9uIApwcm9wLnRlc3QoYyhwcmVFeHBOb0luc3VyYW5jZSwgcG9zdEV4cE5vSW5zdXJhbmNlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCgpkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShJbnN1cmVkID0gSU5TVVJBTkNFX0YgIT0gIlVua25vd24iKQoKYGBgCgoKCgojS2FwbGFuIE1laWVyIEFuYWx5c2lzCgoKIyNBbGwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFsbCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IFR5cGUKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfVFlQRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgTG9jYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBHZW9ncmFwaHkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0dFT0dSQVBIWSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFXzQwIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjR2VuZGVyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTRVhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JBQ0VfRgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFDRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSGlzcGFuaWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1BBTklDIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSW5zdXJhbmNlIFN0YXR1cwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSU5TVVJBTkNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNPdmVyYWxsIFN1cnZpdmFsIHByZS9wb3N0LUFDQSBleHBhbnNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVYUE5fR1JPVVAiLCBkYXRhX2ltcCA9IG5vX0V4Y2x1ZGVzKQpgYGAKCgo8IS0tICMjSW5jb21lIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gY2xhc3MoZGF0YSRJTkNPTUVfRikgLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNFZHVjYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVEVUNBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjVXJiYW4vUnVyYWwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlVfUl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xhc3MgKHRyZWF0bWVudCBhdCBwZXJmb3JtaW5nIGZhY2lsaXR5KQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0xBU1NfT0ZfQ0FTRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjWWVhcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiWUVBUl9PRl9ESUFHTk9TSVMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQcmltYXJ5IFNpdGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNJVEVfVEVYVC55IiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI0hpc3RvbG9neQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1RPTE9HWV9GX0xJTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjQmVoYXZpb3IgLS0+Cgo8IS0tIGBgYHtyfSAtLT4KPCEtLSB1bmlfdmFyKHRlc3RfdmFyID0gIkJFSEFWSU9SIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojI0dyYWRlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJHUkFERV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgVCBTdGFnZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBOIFN0YWdlCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIE0gU3RhZ2UKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9NIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBUIFN0YWdlCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgTiBTdGFnZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE0gU3RhZ2UKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9NIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zIFllcy9ObwpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOU19ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojIzMwIERheSBSZWFkbWlzc2lvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkVBRE1fSE9TUF8zMF9EQVlTX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gVHlwZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfU1VNTV9SQURJQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNMeW1waG92YXNjdWxhciBJbnZhc2lvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0VuZG9zY29waWMvUm9ib3RpYwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBSYWRpYXRpb24gU2VxdWVuY2UgCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTVVJHX1JBRF9TRVEiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNTdXJnZXJ5IFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR0VSWV9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBRElBVElPTl9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NoZW1vIFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0hFTU9fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjVHJlYXRtZW50IFllcy9ObwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUeF9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01ldGFzdGFzZXMgYXQgRHgKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAibWV0c19hdF9keF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNUdW1vciBTaXplIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJUX1NJWkUiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiNUdW1vciBzcGVjaWZpYyBWYXJpYWJsZXMKCgojIyNOb2RlIFNpemUKCgojQ294IFByb3BvcnRpb25hbCBIYXphcmQgUmF0aW8KCiMjTW9kZWwgIzEKCiMjI0Z1bGwgYW5hbHlzaXMKCmBgYHtyfQptb2RlbF9vbmUgPC0gY294cGgoU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgfiBTVVJHX1JBRF9TRVEgKyBJTlNVUkFOQ0VfRiArIEFHRSArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YsCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhKQptb2RlbF9vbmUgJT4lIHN1bW1hcnkoKQoKCmBgYAoKIyMjU3VtbWFyeSBvZiBNb2RlbAoKYGBge3J9Cm1vZGVsX29uZSAlPiUKICAgICAgICB0aWR5KC4sIGV4cG9uZW50aWF0ZSA9IFRSVUUpICU+JQogICAgICAgIHNlbGVjdCh0ZXJtLCBlc3RpbWF0ZSwgY29uZi5sb3csIGNvbmYuaGlnaCwgcC52YWx1ZSkgJT4lCiAgICAgICAgcmVuYW1lKFZhcmlhYmxlID0gdGVybSwKICAgICAgICAgICAgICAgSGF6YXJkX1JhdGlvID0gZXN0aW1hdGUpICU+JQogICAgICAgIHRibF9kZiAlPiUKICAgICAgICBwcmludChuID0gbnJvdyguKSkKCmBgYAoKIyBQcmVkaWN0aW9uIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzCgojIyBTdXJnZXJ5CmBgYHtyfQoKbm9fVWtucyA8LSBkYXRhICU+JQogIGZpbHRlcihTVVJHRVJZX1lOICE9ICJVa24iKSAlPiUgCiAgZHJvcGxldmVscygpICU+JSAKICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGFzLmxvZ2ljYWwoU1VSR0VSWV9ZTikpCgpmaXRfc3VyZyA8LSBnbG0oU1VSR19URiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19Va25zKQoKc3VtbWFyeShmaXRfc3VyZykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9zdXJnKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBNZXRhc3Rhc2lzIGF0IFRpbWUgb2YgRGlhZ25vc2lzCmBgYHtyfQojIGxpbWl0IHRvIHRob3NlIGNhc2VzIHdoZXJlIGRhdGEgYWJvdXQgZXhwYW5zaW9uIHN0YXR1cyBpcyBhdmFpbGFibGUgKD4gQWdlIDM5LCBub24tYW1iaWd1b3VzIHN0YXR1cyBzdGF0ZXMpCgpmaXRfbWV0cyA8LSBnbG0obWV0c19hdF9keF9GIH4gQUdFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GICsgRVhQTl9HUk9VUCwKICAgZGF0YSA9IGRhdGEpCgpzdW1tYXJ5KGZpdF9tZXRzKQoKZXhwKGNiaW5kKCJPZGRzIHJhdGlvIiA9IGNvZWYoZml0X21ldHMpLCBjb25maW50LmRlZmF1bHQoZml0X3N1cmcsIGxldmVsID0gMC45NSkpKQpgYGA=